Latest Articles from JUCS - Journal of Universal Computer Science Latest 21 Articles from JUCS - Journal of Universal Computer Science https://lib.jucs.org/ Fri, 29 Mar 2024 13:16:49 +0200 Pensoft FeedCreator https://lib.jucs.org/i/logo.jpg Latest Articles from JUCS - Journal of Universal Computer Science https://lib.jucs.org/ Trees that Grow https://lib.jucs.org/article/22912/ JUCS - Journal of Universal Computer Science 23(1): 42-62

DOI: 10.3217/jucs-023-01-0042

Authors: Shayan Najd, Simon Jones

Abstract: We study the notion of extensibility in functional data types, as a new approach to the problem of decorating abstract syntax trees with additional information. We observed the need for such extensibility while redesigning the data types representing Haskell abstract syntax inside Glasgow Haskell Compiler (GHC). Specifically, we describe a programming idiom that exploits type-level functions to allow a particular form of extensibility. The approach scales to support existentials and generalised algebraic data types, and we can use pattern synonyms to make it convenient in practice.

HTML

XML

PDF

]]>
Research Article Sat, 28 Jan 2017 00:00:00 +0200
A Logical Reconstruction of Batcher's Mergers Or: Bitonicity is a Red Herring https://lib.jucs.org/article/22911/ JUCS - Journal of Universal Computer Science 23(1): 21-41

DOI: 10.3217/jucs-023-01-0021

Authors: Ralf Hinze, Clare Martin

Abstract: Almost half a century after Batcher wrote his seminal paper on sorting networks, we revisit the key algorithmic design decisions for oblivious merging to rdiscover his schemes in a disciplined way. The design space of sorting networks is eplored, resulting in a systematic reconstruction of schemes that appear in the literature in various guises.

HTML

XML

PDF

]]>
Research Article Sat, 28 Jan 2017 00:00:00 +0200
DIE: A Domain Specific Aspect Language for IDE Events https://lib.jucs.org/article/22945/ JUCS - Journal of Universal Computer Science 20(2): 135-168

DOI: 10.3217/jucs-020-02-0135

Authors: Johan Fabry, Romain Robbes, Marcus Denker

Abstract: Integrated development environments (IDEs) have become the primary way to develop software. Besides just using the built-in features, it becomes more and more important to be able to extend the IDE with new features and extensions. Plugin architectures exist, but they show weaknesses related to unanticipated extensions and event handling. In this paper, we argue that a more general solution for extending IDEs is needed. We present and discuss a solution, motivated by a set of concrete examples: a domain specific aspect language for IDE events. In it, join points are events of interest that may trigger the advice in which the behavior of the IDE extension is called. We show how this allows for the development of IDE plugins and demonstrate the advantages over traditional publish/subscribe systems.

HTML

XML

PDF

]]>
Research Article Sat, 1 Feb 2014 00:00:00 +0200
A Debugging System Based on Natural Semantics https://lib.jucs.org/article/29522/ JUCS - Journal of Universal Computer Science 15(14): 2836-2880

DOI: 10.3217/jucs-015-14-2836

Authors: Alberto Encina, Luis Llana, Fernando Rubio

Abstract: Due to the absence of side effects, reasoning about functional programsis simpler than reasoning about their imperative counterparts. However, because of the absence of practical debuggers, finding bugs in lazy functional languages has beenmore complex until quite recently. One of the easiest to use Haskell debuggers is Hood. Its behavior is based on the concept of observation of intermediate data structures.However, although using Hood can be simple when observing some structures, it is known that it can be hard to understand how it works when dealing with complexsituations. In fact, the author of Hood recognizes that it is necessary to formalize its behavior to explain better what should be expected, and also to allow to check whetherthe different implementations work properly. In this paper, we formalize the behavior of the Hood debugger by extending Sestoft'snatural semantics. Moreover, we also show how to derive an abstract machine including such debugging information. By doing so, we do not only provide a formal foundation,but we also provide an alternative method to implement debuggers. In fact, we have already made a prototype of the abstract machine presented in this paper.

HTML

XML

PDF

]]>
Research Article Sat, 1 Aug 2009 00:00:00 +0300
Exploring Lua for Concurrent Programming https://lib.jucs.org/article/29265/ JUCS - Journal of Universal Computer Science 14(21): 3556-3572

DOI: 10.3217/jucs-014-21-3556

Authors: Alexandre Skyrme, Noemi Rodriguez, Roberto Ierusalimschy

Abstract: The popularization of multi-core processors and of technologies such as hyper-threading demonstrates a fundamental change in the way processors have been evolving and also increases interest in concurrent programming, particularly as a means to improve software performance. However, concurrent programming is still considered complex, mostly due to difficulties in using the available programming models, which have been subject to recurring criticism. The increased interest in concurrency and the lack of proper models to support it stimulates the development of proposals aimed at providing alternative models for concurrent programming. In this paper, we work with some of Lua's facilities to explore such a model, based on user threads and message passing. We also demonstrate why Lua was particularly well suited for this objective, describe the main characteristics of the explored model and present a library developed to implement it, along with results of a performance evaluation.

HTML

XML

PDF

]]>
Research Article Mon, 1 Dec 2008 00:00:00 +0200
Supporting the Modeling of Flexible Educational Units PoEML: A Separation of Concerns Approach https://lib.jucs.org/article/28824/ JUCS - Journal of Universal Computer Science 13(7): 980-990

DOI: 10.3217/jucs-013-07-0980

Authors: Manuel Caeiro-Rodríguez, Maria Marcelino, Martín Llamas-Nistal, Luis Anido-Rifón, Antonio Mendes

Abstract: Educational Modeling Languages (EMLs) have been proposed to support the modeling of educational units. Currently, there are some EML proposals devoted to provide a computational base, enabling the software processing and execution of educational units' models. In this context, flexibility is a key requirement in order to support alternatives and changes . This paper presents a Perspective-oriented Educational Modeling Language (PoEML) that simplifies and facilitates the modeling of alternatives and the performance of changes. The key point of the proposal is the separation of the modeling in several concerns that can be managed almost independently. As a result, changes at each concern can be performed without affecting to other concerns, or affecting in controlled ways.

HTML

XML

PDF

]]>
Research Article Sat, 28 Jul 2007 00:00:00 +0300
C APIs in Extension and Extensible Languages https://lib.jucs.org/article/28812/ JUCS - Journal of Universal Computer Science 13(6): 839-853

DOI: 10.3217/jucs-013-06-0839

Authors: Hisham Muhammad, Roberto Ierusalimschy

Abstract: Scripting languages are used in conjuction with C code in two ways: as extension languages, where the interpreter is embedded as a library into an application; or as extensible languages, where the interpreter loads C code as add-on modules. These two scenarios share many similarities, as in both of them two-way communication of code and data needs to take place. However, the differences between them impose design tradeoffs that affect the C API that bridges the two languages, often making a scripting language more suitable for extending than embedding, or vice-versa. This paper discusses how these tradeoffs are handled in the APIs of popular scripting languages, and the impact on their use as embedded or extensible languages.

HTML

XML

PDF

]]>
Research Article Thu, 28 Jun 2007 00:00:00 +0300
Verifying Real-Time Properties of tccp Programs https://lib.jucs.org/article/28699/ JUCS - Journal of Universal Computer Science 12(11): 1551-1573

DOI: 10.3217/jucs-012-11-1551

Authors: María Alpuente, María del Mar Gallardo, Ernesto Pimentel, Alicia Villanueva

Abstract: The size and complexity of software systems are continuously increasing, which makes them difficult and labor-intensive to develop, test and evolve. Since concurrent systems are particularly hard to verify by hand, achieving effective and automated verification tools for concurrent software has become an important topic of research. Model checking is a popular automated verification technology which allows us to determine the properties of a software system and enables more thorough and less costly testing. In this work, we improve the model-checking methodology previously developed for the timed concurrent constraint programming language tccp so that more sophisticated, real-time properties can be verified by the model-checking tools. The contributions of the paper are twofold. On the one hand, we define a timed extension of the tccp semantics which considers an explicit, discrete notion of the passing of time. On the other hand, we consistently define a real-time extension of the linear-time temporal logic that is used to specify and analyze the software properties in tccp. Both extensions fit into the tccp framework perfectly in such a way that with minor modifications any tccp model checker can be reused to analyze real-time properties. Finally, by means of an example, we illustrate the improved ability to check real-time properties.

HTML

XML

PDF

]]>
Research Article Tue, 28 Nov 2006 00:00:00 +0200
Constraint Based Methods for Biological Sequence Analysis https://lib.jucs.org/article/28697/ JUCS - Journal of Universal Computer Science 12(11): 1500-1520

DOI: 10.3217/jucs-012-11-1500

Authors: Maryam Bavarian, Veronica Dahl

Abstract: The need for processing biological information is rapidly growing, owing to the masses of new information in digital form being produced at this time. Old methodologies for processing it can no longer keep up with this rate of growth. The methods of Artificial Intelligence (AI) in general and of language processing in particular can offer much towards solving this problem. However, interdisciplinary research between language processing and molecular biology is not yet widespread, partly because of the effort needed for each specialist to understand the other one's jargon. We argue that by looking at the problems of molecular biology from a language processing perspective, and using constraint based logic methodologies we can shorten the gap and make interdisciplinary collaborations more effective. We shall discuss several sequence analysis problems in terms of constraint based formalisms such Concept Formation Rules, Constraint Handling Rules (CHR) and their grammatical counterpart, CHRG. We postulate that genetic structure analysis can also benefit from these methods, for instance to reconstruct from a given RNA secondary structure, a nucleotide sequence that folds into it. Our proposed methodologies lend direct executability to high level descriptions of the problems at hand and thus contribute to rapid while efficient prototyping.

HTML

XML

PDF

]]>
Research Article Tue, 28 Nov 2006 00:00:00 +0200
Extension of CQL over Dynamic Databases https://lib.jucs.org/article/28660/ JUCS - Journal of Universal Computer Science 12(9): 1165-1176

DOI: 10.3217/jucs-012-09-1165

Authors: Antal Buza

Abstract: CQL, Continuous Query Language is suitable for data stream queries. Sometimes it is better if the queries operate on relational databases and data streams simultaneously. The execution of a CQL query takes a long time (several hours, days or even more). It is not clear what kind of semantics is suitable for the user when the database is updated during the execution of a CQL query. In this paper we give a short description of CQL, a characterization of update-problems, and we offer possible suggestions for the semantic extension of CQL. After the expansion, the CQL would be suitable for solving much more practical problems. The parallel usage of continuous data streams and updatable databases would be settled.

HTML

XML

PDF

]]>
Research Article Thu, 28 Sep 2006 00:00:00 +0300
Analyzing Module Diversity https://lib.jucs.org/article/28490/ JUCS - Journal of Universal Computer Science 11(10): 1613-1644

DOI: 10.3217/jucs-011-10-1613

Authors: Alexandre Bergel, Stéphane Ducasse, Oscar Nierstrasz

Abstract: Each object­oriented programming language proposes various grouping mechanisms to bundle interacting classes (i.e., packages, modules, selector namespaces, etc). To understand this diversity and to compare the different approaches, a common foundation is needed. In this paper we present a simple module calculus consisting of a small set of operators over environments and modules. Using these operators, we are then able to specify a set of module combinators that capture the semantics of Java packages, C# namespaces, Ruby modules, selector namespaces, gbeta classes, classboxes, MZScheme units, and MixJuice modules. We develop a simple taxonomy of module systems, and show how particular combinations of module operators help us to draw sharp distinctions between classes of module systems that share similar characteristics.

HTML

XML

PDF

]]>
Research Article Fri, 28 Oct 2005 00:00:00 +0300
The Implementation of Lua 5.0 https://lib.jucs.org/article/28438/ JUCS - Journal of Universal Computer Science 11(7): 1159-1176

DOI: 10.3217/jucs-011-07-1159

Authors: Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes

Abstract: We discuss the main novelties of the implementation of Lua 5.0: its register-based virtual machine, the new algorithm for optimizing tables used as arrays, the implementation of closures, and the addition of coroutines.

HTML

XML

PDF

]]>
Research Article Thu, 28 Jul 2005 00:00:00 +0300
ADDS: A Document-Oriented Approach for Application Development https://lib.jucs.org/article/28301/ JUCS - Journal of Universal Computer Science 10(9): 1302-1324

DOI: 10.3217/jucs-010-09-1302

Authors: José Sierra, Alfredo Fernández-Valmayor, Baltasar Fernández-Manjón, Antonio Navarro

Abstract: This paper proposes a document oriented paradigm to the development of content-intensive, document-based applications (e.g. educational and hypermedia applications, and knowledge based systems). According to this paradigm, the main aspects of this kind of applications can be described by means of documents. Afterwards, these documents are marked up using descriptive domain-specific markup languages and applications are produced by the automatic processing of these marked documents. We have used this paradigm to improve the maintenance and portability of content-intensive educational and hypermedia applications. ADDS (Approach to Document-based Development of Software) is an approach to software development based on the document oriented paradigm. A key feature of ADDS is that formulation of domain-specific markup languages is a dynamic and eminently pragmatic activity, and markup languages evolve according to the authoring needs of the different participants in the development process (domain experts and developers). The evolutionary nature of markup languages in ADDS leads to OADDS (Operationalization in ADDS), the proposed operationalization model for the incremental development of modular markup language processors. Finally, the document-oriented paradigm can also be applied in the construction of OADDS processors that are also described using marked documents. This paper presents our ADDS approach, including the operationalization model and its implementation as an object-oriented framework. The application of our document-oriented paradigm to the construction of OADDS processors is also presented.

HTML

XML

PDF

]]>
Research Article Tue, 28 Sep 2004 00:00:00 +0300
Partial Categorical Multi-Combinators and Church-Rosser Theorems https://lib.jucs.org/article/28255/ JUCS - Journal of Universal Computer Science 10(7): 769-788

DOI: 10.3217/jucs-010-07-0769

Authors: Rafael Lins

Abstract: Categorical Multi-Combinators form a rewriting system developed with the aim of providing efficient implementations of lazy functional languages. The core of the system of Categorical Multi-Combinators consists of only four rewriting laws with a very low pattern-matching complexity. This system allows the equivalent of several -reductions to be performed at once, as functions form frames with all their arguments. Although this feature is convenient for most cases of function application it does not allow partially parameterised functions to fetch arguments. This paper presents Partial Categorical Multi-Combinators, a new rewriting system, which removes this drawback.

HTML

XML

PDF

]]>
Research Article Wed, 28 Jul 2004 00:00:00 +0300
Object-Oriented Action Semantics Specifications https://lib.jucs.org/article/28091/ JUCS - Journal of Universal Computer Science 9(8): 910-934

DOI: 10.3217/jucs-009-08-0910

Authors: Claudio Carvilhe, Martin Musicante

Abstract: Action Semantics is a framework for the formal specification of programming languages. Two different, recently proposed approaches provide modularity to the framework, allowing for specification reusability and extension. In this work, we analyze the previous approaches, and introduce Object-Oriented Action Semantics, a new form of modular organization of Action Semantics descriptions. Object-oriented Action Semantics does not modify the syntax in which actions are written, the addition of object-oriented features (like classes and objects) is done as an upper layer to the semantic entities and functions. A simple Pascal-like, imperative programming language is described using the formalism. The extension and reuse capabilities of Object_Oriented Action Semantics are demonstrated by adding new features to the description. The semantics of the object-oriented action notation is also presented.

HTML

XML

PDF

]]>
Research Article Thu, 28 Aug 2003 00:00:00 +0300
Dependently Typed Pattern Matching https://lib.jucs.org/article/28087/ JUCS - Journal of Universal Computer Science 9(8): 851-872

DOI: 10.3217/jucs-009-08-0851

Authors: Hongwei Xi

Abstract: The mechanism for declaring datatypes to model data structures in programming languages such as Standard ML and Haskell can offer both convenience in programming and clarity in code. With the introduction of dependent datatypes in DML, the programmer can model data structures with more accuracy, thus capturing more program invariants. In this paper, we study some practical aspects of dependent datatypes that affect both type-checking and compiling pattern matching. The results, which have already been tested, demonstrate that dependent datatype can not only o#er various programming benefits but also lead to performance gains, yielding a concrete case where safer programs run faster.

HTML

XML

PDF

]]>
Research Article Thu, 28 Aug 2003 00:00:00 +0300
Implementation of an Embedded Hardware Description Language Using Haskell https://lib.jucs.org/article/28083/ JUCS - Journal of Universal Computer Science 9(8): 795-812

DOI: 10.3217/jucs-009-08-0795

Authors: Nélio Muniz Mendes Alves, Sérgio Schneider

Abstract: This paper describes an ongoing implementation of an embedded hardware description language (HDL) using Haskell as a host language. Traditionally, functional HDL s are made using lazy lists to model signals, so circuits are functions from lists of input values to lists of output values. We use another known approach for embedded languages, in which circuits are data structures rather than functions. This style of implementation permits one to inspect the structure of the circuit, allowing one to perform different interpretations for the same description. The approach we present can also be applied to other domain-specific embedded languages. We provide an elegant implementation of memories and a set of new signal types.

HTML

XML

PDF

]]>
Research Article Thu, 28 Aug 2003 00:00:00 +0300
Haskell#: Parallel Programming Made Simple and Efficient https://lib.jucs.org/article/28082/ JUCS - Journal of Universal Computer Science 9(8): 776-794

DOI: 10.3217/jucs-009-08-0776

Authors: Francisco Heron de Carvalho Júnior, Rafael Lins

Abstract: This paper presents the final result of the designing of a new specification for the Haskell# Language, including new features to increase its expressiveness, but without losing either efficiency or obedience to its original premisses.

HTML

XML

PDF

]]>
Research Article Thu, 28 Aug 2003 00:00:00 +0300
Distributed Typed Concurrent Objects: a Programming Language for Distributed Computations with Mobile Resources https://lib.jucs.org/article/28079/ JUCS - Journal of Universal Computer Science 9(8): 745-760

DOI: 10.3217/jucs-009-08-0745

Authors: Alvaro Figueira, Hervé Paulino, Luis Lopes, Fernando Silva

Abstract: We describe a programming language for distributed computations that supports mobile resources and is based on a process calculus. The syntax, semantics and implementation of the language are presented with a focus on the novel model of computation.

HTML

XML

PDF

]]>
Research Article Thu, 28 Aug 2003 00:00:00 +0300
An Object-oriented Approach to Design, Specification, and Implementation of Hyperlink Structures Based on Usual Software Development https://lib.jucs.org/article/27911/ JUCS - Journal of Universal Computer Science 8(10): 892-912

DOI: 10.3217/jucs-008-10-0892

Authors: Alexander Fronk

Abstract: Different models and methodologies for the development of hypermedia systems and applications have emerged in the recent years. Software-technical methods and principles enriched with ideas mainly driven from the applications needs are often sponsor to those models and methodologies. Hence, they deal with very specific problems occurring in the hypermedia domain, thereby extending design notations like UML or State Charts and adapting them to modeling this domain. In the present paper, we propose a very usual software-technical approach to the development of hyperlink structures which form the basis for navigation in hyperdocuments. Our approach uses standard UML, algebraic specification and object-oriented implementation to cover the construction of hyperlink structures, from design through to specification and realization. We thereby equate the development of hypermedia documents with usual software development. Instead of adopting software-engineering and notations to hypermedial concerns, we adopt the latter to the former and show the advantages of this approach.

HTML

XML

PDF

]]>
Research Article Mon, 28 Oct 2002 00:00:00 +0200
Stack Filter Design Using a Distributed Parallel Implementation of Genetic Algorithms https://lib.jucs.org/article/27387/ JUCS - Journal of Universal Computer Science 3(7): 821-834

DOI: 10.3217/jucs-003-07-0821

Authors: Peter Undrill, Kostas Delibasis, George Cameron

Abstract: Stack filters are a class of non-linear spatial operators used for suppression of noise in signals. In this work their design is formulated as an optimisation problem and a method that uses Genetic Algorithms (GAs) to perform the configuration is explained. Because of its computational complexity the process has been implemented as a distributed parallel GA using the Parallel Virtual Machine (PVM) software. We present the results of applying our stack filters to the restoration of magnetic resonance (MR) images corrupted with uniform, uncorellated, noise showing improved statistical performance compared with the median filter and indicating better retention of image details. The efficiency of the parallel implementation is examined, addressing both algorithmic and data decomposition, showing that execution times can be significantly reduced by distributing the task across a network of heterogeneous processors.

HTML

XML

PDF

]]>
Research Article Mon, 28 Jul 1997 00:00:00 +0300