|
Programming is at the heart of the activity of any
software engineer or computer scientist. Because
computer science, by its nature and by the context
in which it evolves, is in perpetual mutation, the
concepts, techniques and tools for programming
suffer from a continual reinvention.
For instance, one assists today to the profusion of
multicore architectures or to the advent of
ubiquitous computing. The needs for reliability,
efficiency, reusability or ease of development are
still an important issue. New programming paradigms,
such as aspect oriented programming and design by
contracts, arise, become a reality or gain maturity
and popularity. Of course, many other promising
development approaches are omitted here and many
others will happen.
All these, put together, form continuously changing
challenges that programming methodologies and tools
must handle and provide an adequate support. This
explains in part why there is no and will not exist
an ultimate solution in compilers, programming
languages or execution platform design. These are
exciting, extremely active and constantly evolving
research areas.
A reader will find in this special issue of the
ComSIS journal revised versions of selected papers
from the Conference on Compilers, Related
Technologies and Applications" (CoRTA'2008), held
the 11th July of 2008 in Bragança -Portugal (http://corta.ipb.pt).
The conference was organized by Microsoft-Portugal,
the Departments of Computer Science of the
Polytechnic Institute of Bragança, University of
Minho and University of Beira Interior.
The aim of CoRTA was to provide a forum where
researchers, developers, educators, research
students, and practitioners exchange ideas and
information on the latest academic or industrial
work in compiler technology, programming language
design and implementation, and their application.
The conference emphasized theoretical, practical and
experimental work and hosted contributions on
methods and tools for all aspects of compiler
technology and all language paradigms. In
particular, the following topics were covered:
- compilation and interpretation techniques;
- run-time techniques;
- programming tools;
- techniques for specific domains or environments;
- formal techniques and tools;
- design of novel language constructs and their
implementation;
- programming language concepts and methodologies.
This special issue contains 8 papers, Those are
extensively revised versions of the original
presentations published in CoRTA'2008 Proceedings.
Maria João Varanda Pereira, Marjan Mernik, Daniela
da Cruz, and Pedro Rangel Henriques in the invited
paper “Program Comprehension for Domain-Specific
Languages” provide a survey on how techniques and
tools for the comprehension of traditional
programming languages fit into the understanding of
Domain specific Languages (DSL).
In the paper “From Lisp S-Expressions to Java Source
Code”, António Menezes Leitão proposes how to use
S-expression syntax in a Java code generation
environment.
Nuno Lopes, Cláudio Fernandes, and Salvador Abreu
describe in the paper “Representing and Querying
Multiple Ontologies with Contextual Logic
Programming” how contextual logic programming can be
used as a computational hub for representing and
reasoning over knowledge modeled by web ontology.
João Costa Seco, Ricardo Silva, and Margarida
Piriquito introduce in their paper “ComponentJ: a
component-based programming language with dynamic
reconfiguration” an evolution of the ComponentJ
programming language, a component-based Java-like
programming language, where composition is a chosen
structuring mechanism.
Elisabete Ferreira, Rogério Paulo, Daniela da Cruz,
and Pedro Henriques in their paper “Integration of
the ST Language in a Model-Based Engineering
Environment for Control Systems – An Approach for
Compiler” present an industrial experience on the
use of compilers design principles. In particular,
they describe the integration of a DSL language in a
tool core meta-model. The DSL compiler is presented
as an application case study.
Ricardo Dias, João Lourenço, and Gonçalo Cunha, the
authors of the paper “Developing Libraries Using
Software Transactional Memory”, propose in the
context of software transactional memory, a generic
and an elegant approach based on a handler system,
which provide the means to create and execute
compensation actions at key moments, during the
life-time of a transaction.
Daniela da Cruz, Pedro Rangel Henriques, and Maria
João Varanda Pereira, in their paper “Alma vs DDD”,
present how a program animator Alma can be used for
the purpose of understanding programs. In order to
highlight the key features of Alma, they compare
this approach with a well known debugger. David
Pereira and Nelma Moreira introduce in the paper
"KAT and PHL in Coq" an implementation of Kleene
algebra with tests (KAT) in the Coq theorem prover.
In particular, the authors show how this can be used
to prove the correctness of programs in the context
of source-level Proof-Carrying-Code.
In conclusion, we would like to thanks the authors
for their valuable contribution to this special
issue. We also like to thanks the referees for their
high-quality work and great efforts.
Publishing this special issue would not be possible
without a great enthusiasm and a considerable
support of several colleagues and friends. My thanks
go to Maria João Varanda, Pedro Rangel Henriques,
António Menezes Leitão, Vitor Santos, Salvador Abreu,
João Cachopo, Vitor Santos Costa, Ludovic Henrio,
Pedro Patinho, Rogério Reis, Ricardo Rocha, and
Bernard Serpette.
Finally, I am grateful to Prof. Ivan Lukovic,
Editor-in-Chief of ComSIS, who kindly accepted the
request to publish the best CoRTA'2008 papers in
this journal.
Simão Melo de Sousa Guest Editor
|