In previous work we have presented lang-n-play, a functional language-oriented programminglanguage with languages as first-class-citizens. language definitions can be bound to variables, passed to and returned by fun...
详细信息
ISBN:
(纸本)9783030590246;9783030590253
In previous work we have presented lang-n-play, a functional language-oriented programminglanguage with languages as first-class-citizens. language definitions can be bound to variables, passed to and returned by functions, and can be modified at run-time before being used. lang-n-play programs are compiled and executed in the higher-order logic programming ***. In this paper, we describe our compilation methods, which highlight how the distinctive features of higher-order logic programming are a great fit in implementing a language-oriented programminglanguage.
Based on the state of our ongoing research into language-Driven Software Development (LDSD) and language-oriented programming (LOP) we argue that the yet relatively unknown paradigm of concatenative programming is val...
详细信息
ISBN:
(纸本)9789896740092
Based on the state of our ongoing research into language-Driven Software Development (LDSD) and language-oriented programming (LOP) we argue that the yet relatively unknown paradigm of concatenative programming is valuable for fundamental software engineering research and might prove to be a suitable foundation for future programming. To be sound, we formally introduce Concat, our research prototype of a purely functional concatenative language. The simplicity of Concat is contrasted by its expressiveness and a richness of inspiring approaches. Concatenative languages contribute a fresh and different sight on functional programming, which might help tackle challenges in LDSD/LOP from a new viewpoint.
language-oriented programming (LOP) advocates a way of creating software systems that starts from the development of a domain-specific language (DSL). The DSL is geared to-wards solving computational problems in a par...
详细信息
language-oriented programming (LOP) advocates a way of creating software systems that starts from the development of a domain-specific language (DSL). The DSL is geared to-wards solving computational problems in a particular domain. Developers then use the DSL to express configurations, rules, algorithms or knowledge for this particular domain at higher levels of abstraction than those achievable with a general-purpose programminglanguage. Achieving the vision of LOP requires methods to ease the creation and the reuse of DSLs. One of the most likely technologies to achieve the vision of LOP are the projectional language workbenches because of the flexibility they add in DSL notation and DSL modularity. Modularity, in particular, is a key factor in easing the creation and reuse of DSLs. We have previously designed a new method and associated meta-tools, called Meta Mod, for the creation of modular and reusable DSLs. The goal in this article is to demonstrate what the advantages of MetaMod are in terms of creating modular and reusable DSLs compared to the state-of-the-art projectional language workbench Jetbrains MPS. To this end, we took a comprehensive expression language, the iets3 expression DSL written in Jetbrains MPS, and redefined a fragment of it in MetaMod;we use part of this reimple-mented expression language as a running example in the article. This allowed us to make a better comparison with creating DSLs in MPS. Moreover, in the process, we also highlighted the main features of MetaMod concerning modularity and reuse. As a result of the comparison we underline the main advantage that MetaMod brings in the implementation of modular and reusable DSLs, that is, the possibility to create smaller, more conceptually cohesive DSLs. This makes DSLs more fit for reuse. Furthermore, we present an extensive overview of related work regarding features of language tools for creating modular and reusable DSLs. (C) 2017 Elsevier Ltd. All rights reserved.
In this paper, we introduce languages as first-class citizens as a sub-paradigm of language-oriented programming. In this approach, language definitions are in the context of a general purpose programminglanguage wit...
详细信息
ISBN:
(纸本)9781450360296
In this paper, we introduce languages as first-class citizens as a sub-paradigm of language-oriented programming. In this approach, language definitions are in the context of a general purpose programminglanguage with the same status as any other expression. In particular, language definitions are elevated to be run-time values, that can be assigned to variables, passed to functions, returned by functions, and inserted into lists, to name a few possibilities. This approach offers flexible features in the run-time creation and modification of languages, and may promote new idioms in language-oriented programming. As a proof of concept, we have designed and implemented LANG-N-PLAY, a functional language with languages as first-class citizens. We present the features of LANG-N-PLAY with an example, and show that they naturally enable dynamic programming scenarios.
Today's ongoing trend towards intense usage of web service based applications in daily business and everybody's daily life poses new challenges for security testing. Additionally, such applications mostly not ...
详细信息
ISBN:
(纸本)9780769550305
Today's ongoing trend towards intense usage of web service based applications in daily business and everybody's daily life poses new challenges for security testing. Additionally, such applications mostly not execute in their own runtime environment but instead are deployed in some data center, run alongside multiple other applications, and serve different purposes for sundry user domains with diverging security requirements. As a consequence, security testing also has to adapt to be able to meet the necessary requirements for each application in its domain and its specific security requirements. In addition, security testing needs to be feasible for both service providers and consumers. In our paper we identify drawbacks of existing security testing approaches and provide directions for meeting emerging challenges in future security testing approaches. We also introduce and describe the idea of language-oriented security testing, a novel testing approach building upon domain-specific languages and domain knowledge to meet future requirements in security testing.
Conventional debuggers require programmers to work on multiple levels of abstraction at once when inspecting call stacks or data. This demands considerable cognitive overhead and deep system knowledge of all implement...
详细信息
ISBN:
(纸本)9781450340335
Conventional debuggers require programmers to work on multiple levels of abstraction at once when inspecting call stacks or data. This demands considerable cognitive overhead and deep system knowledge of all implementation technologies involved. When developing an interpreter, programmers often create a dedicated debugger to have a higher-level perspective on the client-language;the resulting use of multiple debuggers at once leads to mental context switches and needs an elaborated method. We present an integrated debugging tool in which interpreter developers define and select the levels of abstraction on which they focus. Our debugger provides them with an abstraction-specialized view. We consider both host-language and guest-language levels, since either may be levels of interest in a debugging session. We show how this separation into host-language levels can ease the debugging of applications through filtering call stacks and specializing call stack representation on levels.
暂无评论