Domain Specific languages (DSLs) can be implemented as either internal DSL, i.e. essentially a library in a host generalpurpose programminglanguage (GPL), or as external DSL which is a stand-alone language unconstrai...
详细信息
ISBN:
(纸本)9798400704062
Domain Specific languages (DSLs) can be implemented as either internal DSL, i.e. essentially a library in a host generalpurpose programminglanguage (GPL), or as external DSL which is a stand-alone language unconstrained in its syntax. This choice implies an inherent trade-off between a limited syntactic and representational flexibility (internal DSLs), or an involved integration with GPLs and the need for a full stack of tools from a parser to a code generator (external DSLs). We propose a solution which addresses this problem by representing a subset of a GPL - from simple code patterns to complex API calls - as GUI widgets in a hybrid editor. Our approach relies on matching parametrized patterns against the GPL program, and displaying the matched parts as dynamically rendered widgets. Such widgets can be interpreted as components of an external DSL. Since the source code is serialized as GPL text without annotations, there is no DSL outside the editor - hence the term 'virtual' DSL. This solution has several advantages. The underlying GPL and the virtual DSL can be mixed in a compositional way, with zero cost of their integration. The project infrastructure does not need to be adapted. Furthermore, our approach works with mainstream GPLs like Python or JavaScript. To lower the development effort of such virtual DSLs, we also propose an approach to generate patterns and the corresponding text-only GUI widgets from pairs of examples. We evaluate our approach and its implementation on use cases from several domains. A live demo of the system can be accessed at https://***/ and the source code with examples at https://***/niklaskorz/puredit/
The Microsoft .NET Framework is a comparatively new technology that has already gained considerable momentum. Its user base and popularity is expanding. In addition, it offers a number of important traits, such as cod...
详细信息
The Microsoft .NET Framework is a comparatively new technology that has already gained considerable momentum. Its user base and popularity is expanding. In addition, it offers a number of important traits, such as code portability and cross-language development. It is these features that have attracted our attention into investigating the possibility of using .NET for architecture -neutral real-time systems. As a result, this paper tries to set the groundwork for implementing a real-time version of the Microsoft .NET Framework by specifying a set of requirements.
暂无评论