scispace - formally typeset
Search or ask a question

Showing papers in "Report - Software engineering in 2008"


Journal Article
TL;DR: In this article, the authors investigate the application of the Right-Nulled Generalized====== LR parsing algorithm (RNGLR) to scannerless parsing and present an updated parsing and filtering algorithm, called SRNGLR, and analyze its performance in comparison to SGLR on ambiguous grammars for the C, Java, Python, SASL, and C++.
Abstract: Analysis and renovation of large software portfolios requires syntax analysis of multiple, usually embedded, languages and this is beyond the capabilities of many standard parsing techniques. The traditional separation between lexer and parser falls short due to the limitations of tokenization based on regular expressions when handling multiple lexical grammars. In such cases scannerless parsing provides a viable solution. It uses the power of context-free grammars to be able to deal with a wide variety of issues in parsing lexical syntax. However, it comes at the price of less efficiency. The structure of tokens is obtained using a more powerful but more time and memory intensive parsing algorithm. Scannerless grammars are also more non-deterministic than their tokenized counterparts, increasing the burden on the parsing algorithm even further. In this paper we investigate the application of the Right-Nulled Generalized LR parsing algorithm (RNGLR) to scannerless parsing. We adapt the Scannerless Generalized LR parsing and filtering algorithm (SGLR) to implement the optimizations of RNGLR. We present an updated parsing and filtering algorithm, called SRNGLR, and analyze its performance in comparison to SGLR on ambiguous grammars for the programming languages C, Java, Python, SASL, and C++. Measurements show that SRNGLR is on average 33% faster than SGLR, but is 95% faster on the highly ambiguous SASL grammar. For the mainstream languages C, C++, Java and Python the average speedup is 16%.

16 citations


Journal Article
TL;DR: It is proved that no finite, sound axiomatization for BCCSP modulo impossible futures equivalence is ground-complete, and a infinite, sound, ground- complete axiom atization is presented, which is shown to be omega-complete.
Abstract: We investigate the (in)equational theory of impossible futures semantics over the process algebra BCCSP. We prove that no finite, sound axiomatization for BCCSP modulo impossible futures equivalence is ground-complete. By contrast, we present a finite, sound, ground-complete axiomatization for BCCSP modulo impossible futures preorder}. If the alphabet of actions is infinite, then this axiomatization is shown to be omega-complete. If the alphabet is finite, we prove that the inequational theory of BCCSP modulo impossible futures preorder lacks such a finite basis. We also derive non-finite axiomatizability results for nested impossible futures semantics.

12 citations


Journal Article
TL;DR: The Meta-Environment is a language workbench providing parsing, analysis, transformation, syntax highlighting and formatting support for the development of programming languages and its suitability for DSL engineering is elaborated.
Abstract: The development of a domain specific language (DSL) can be a difficult and costly undertaking. Language workbenches aim to provide integrated development support to ease this process. The Meta-Environment is a language workbench providing parsing, analysis, transformation, syntax highlighting and formatting support for the development of programming languages. In this paper we elaborate on the suitability of it for DSL engineering by reporting on our experience in developing a little language for markup generation.

2 citations


Journal Article
TL;DR: A modular theory of the coalgebras and bisimulation in the intensional type theory implemented in coq is presented and some of the productive specifications violating the guardedness condition of coq can be formalised using the library.
Abstract: In this work we present a modular theory of the coalgebras and bisimulation in the intensional type theory implemented in Coq. On top of that we build the theory of weakly final coalgebras and develop the lambda-coiteration scheme, thereby extending the class of specifications definable in Coq. We provide an instantiation of the theory for the coalgebra of streams and show how some of the productive specifications violating the guardedness condition of Coq can be formalised using our library.

2 citations


Journal Article
TL;DR: A new class of fully bracketed contextual grammars is introduced, called the semi-bracketed contextual Grammars, where the selectors can also be non-minimally Dyck covered language and the tree structure to the derived strings is still preserved in this variant.
Abstract: Bracketed and fully bracketed contextual grammars were introduced to bring the concept of a tree structure to the strings by associating a pair of parentheses to the adjoined contexts in the derivation. In this paper, we show that these grammars fail to generate all the basic non-context-free languages, thus cannot be a syntactical model for natural languages. To overcome this failure, we introduce a new class of fully bracketed contextual grammars, called the semi-bracketed contextual grammars, where the selectors can also be non-minimally Dyck covered language. We see that the tree structure to the derived strings is still preserved in this variant. when this new grammar is combined with the maximality feature, the generative power of these grammars is increased to the extend of covering the family of context-free languages and some basic non-context-free languages, thus possessing many properties of the so called `MCS formalism'.

1 citations


Journal Article
TL;DR: It is demonstrated that embedding non-recursive Orc expressions into Reo connectors is straightforward, whereas recursive Orc expressions require an extension to the Reo model.
Abstract: Orc and Reo are two complementary approaches to the problem of coordinating components or services. On one hand, Orc is highly asynchronous, dynamic, and based on ephemeral connections to services. On the other hand, Reo is based on the interplay between synchronization and mutual exclusion, is more static, and establishes more continuous connections between components or services. The question of how Orc and Reo relate to each other naturally arises. In this paper, we present a detailed comparison of the two models. We demonstrate that embedding non-recursive Orc expressions into Reo connectors is straightforward, whereas recursive Orc expressions require an extension to the Reo model. For the other direction, we argue that embedding Reo into Orc would require, based on expressiveness results of Palamidessi, signifficantly more effort. We conclude with some general observations and comparisons between the two approaches.