首页> 外文会议>IFIP TC 2 Working Conference on Domain-Specific Languages >Generic Libraries in C++ with Concepts from High-Level Domain Descriptions in Haskell A Domain-Specific Library for Computational Vulnerability Assessment
【24h】

Generic Libraries in C++ with Concepts from High-Level Domain Descriptions in Haskell A Domain-Specific Library for Computational Vulnerability Assessment

机译:C ++中的通用库,具有来自Haskell中的高级域描述的概念,用于计算漏洞评估的域特定于域库

获取原文

摘要

A class of closely related problems, a problem domain, can often be described by a domain-specific language, which consists of algorithms and combinators useful for solving that particular class of problems. Such a language can be of two kinds: it can form a new language or it can be embedded as a sublanguage in an existing one. We describe an embedded DSL in the form of a library which extends a general purpose language. Our domain is that of vulnerability assessment in the context of climate change, formally described at the Potsdam Institute for Climate Impact Research. The domain is described using Haskell, yielding a domain specific sublanguage of Haskell that can be used for prototyping of implementations. In this paper we present a generic C++ library that implements a domain-specific language for vulnerability assessment, based on the formal Haskell description. The library rests upon and implements only a few notions, most importantly, that of a monadic system, a crucial part in the vulnerability assessment formalisation. We describe the Haskell description of monadic systems and we show our mapping of the description to generic C++ components. Our library heavily relies on concepts, a C++ feature supporting generic programming: a conceptual framework forms the domain-specific type system of our library. By using functions, parametrised types and concepts from our conceptual framework, we represent the combinators and algorithms of the domain. Furthermore, we discuss what makes our library a domain specific language and how our domain-specific library scheme can be used for other domains (concerning language design, software design, and implementation techniques).
机译:一类密切相关的问题,一个问题域,通常可以通过域特定语言描述,该语言包括用于解决特定类问题的算法和组合器。这种语言可以是两种:它可以形成一种新语言,或者它可以嵌入在现有的一个中。我们描述了一个延长通用语言的库形式的嵌入式DSL。我们的域名是气候变化背景下的脆弱性评估,正式描述于波茨坦的气候影响研究所研究所。使用Haskell描述域,产生了可以用于实现的原型设计的Haskell的域特定子语。在本文中,我们介绍了一个通用的C ++库,该库基于正式的Haskell描述实现了用于漏洞评估的域特定语言。图书馆休息并仅实现了几个概念,最重要的是,一个Monadic系统,漏洞评估形式化的关键部分。我们描述了Monadic系统的Haskell描述,我们向通用C ++组件显示了描述的映射。我们的图书馆严重依赖于概念,一个C ++功能支持通用编程:概念框架形成了我们库的域特定类型系统。通过使用概念框架的函数,参数化类型和概念,我们代表域的组合器和算法。此外,我们讨论了什么使我们的图书馆成为域特定语言以及我们的域特定文库方案如何用于其他域(关于语言设计,软件设计和实现技术)。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号