10 research outputs found

    3rd international software language engineering conference (SLE) : pre-proceedings, October 12-13, 2010, Eindhoven, the Netherlands

    Get PDF
    We are pleased to present the proceedings of the Third International Conference on Software Language Engineering (SLE 2010). The conference will be held in Eindhoven, the Netherlands during October 12-13, 2010 and will be co-located with The Ninth International Conference on Generative Programming and Component Engineering (GPCE'10), and The Workshop on Feature-Oriented Software Development (FOSD). An important goal of SLE is to integrate the different sub-communities of the software-language-engineering community to foster cross-fertilization and strengthen research overall. The Doctoral Symposium at SLE 2010 contributes towards these goals by providing a forum for both early and late-stage PhD students to present their research and get detailed feedback and advice from other researchers. The SLE conference series is devoted to a wide range of topics related to artificial languages in software engineering. SLE is an international research forum that brings together researchers and practitioners from both industry and academia to expand the frontiers of software language engineering. SLE's foremost mission is to encourage and organize communication between communities that have traditionally looked at software languages from different, more specialized, and yet complementary perspectives. SLE emphasizes the fundamental notion of languages as opposed to any realization in specific technical spaces. In this context, the term "software language" comprises all sorts of artificial languages used in software development including general-purpose programming languages, domain-specific languages, modeling and meta-modeling languages, data models, and ontologies. Software language engineering is the application of a systematic, disciplined, quantifiable approach to the development, use, and maintenance of these languages. The SLE conference is concerned with all phases of the lifecycle of software languages; these include the design, implementation, documentation, testing, deployment, evolution, recovery, and retirement of languages. Of special interest are tools, techniques, methods, and formalisms that support these activities. In particular, tools are often based on, or automatically generated from, a formal description of the language. Hence, the treatment of language descriptions as software artifacts, akin to programs, is of particular interest - while noting the special status of language descriptions, and the tailored engineering principles and methods for modularization, refactoring, refinement, composition, versioning, co-evolution, and analysis that can be applied to them. The response to the call for papers for SLE 2010 was very enthusiastic. We received 79 full submissions from 108 initial abstract submissions. From these submissions, the Program Committee (PC) selected 25 papers: 17 full papers, five short papers, and two tool demonstration papers, resulting in an acceptance rate of 32%. To ensure the quality of the accepted papers, each submitted paper was reviewed by at least three PC members. Each paper was discussed in detail during the electronic PC meeting. A summary of this discussion was prepared by members of the PC and provided to the authors along with the reviews

    Syntactic Sugar Programming Languages' Constructs

    Get PDF
    Software application development is a daily task done by developers and code writers all over the world. A valuable portion of developers‘ time is spent in writing repetitive keywords, debugging code, trying to understand its semantic, and fixing syntax errors. These tasks become harder when no integrated development environment (IDE) is available or developers use remote access terminals like UNIX and simple text editors for code writing. Syntactic sugar constructs in programming languages are found to offer simple and easy syntax constructs to make developers' lives easier and smoother. In this study we propose a new set of syntactic sugar constructs, and try to find if they really can help developers in reducing syntax errors, make code shorter, more readable, easier to write, and can help in debugging and semantic understanding. Our methodology was to construct a new syntactic sugar constructs set extracted from existing programming languages' syntax in addition to other syntactic enhancements proposed by us, then we verified the efficiency of the new syntactic sugar constructs set through executing an exploratory case study with students and professional programmers. The exploratory case study results showed positive indicators for using the new proposed syntactic sugar constructs set to write programs' syntax. They helped in reducing syntax errors, making the code more readable, easier to write, and to understand.تطوير البرمجيات التطبيقية ىي ميمة يومية يقوم بيا المطورون والمبرمجون في كافة انحاء العالم، و ييدر جزء ال بأس بو من وقت المبرمجين في كتابة كممات مفتاحية بشكل متكرر في الجمل التركيبية لمبرامج وتصحيح األخطاء في بناء الجمل التركيبية، و محاولة فيم دالالت البرامج. ىذه الميام تصبح أكثر صعوبة إذا لم تكن ىناك بيئة تطوير متكاممة متاحة لإلستخدام، أو عندما يقوم المطورون بكتابة البرامج بإستخدام محررات نصوص بسيطة، وكذلك في حالة تطوير البرامج عن بعد بإستخدام برمجيات االتصال الطرفي كما في نظام التشغيل يونيكس مثلا. لقد أوجدت محسنات بناء الجمل التركيبية في لغات البرمجة لتقدم تركيبات نصية بسيطة وسيمة وجعل حياة المطورين أسيل. بناءاٌ عمى ذلك، نقترح في ىذه الدراسة مجموعة جديدة من محسنات بناء الجمل التركيبية، ونحاول معرفة ما إذا كانت ىذه المحسنات تساىم في التقميل من االخطاء اكثر وضوحاا النصية وجعل تركيب الجمل في لغات البرمجة ابسط و واسيل لمق ارءة والكتابة والتتبع وفيم دالالت البرامج. منيجية البحث المتبعة في ىذه الدراسة تقوم عمى إيجاد مجموعة من محسنات بناء الجمل التركيبية والمستخرجة من بعض لغات البرمجة المستخدمة ، إضافة الى عدد من التحسينات المقترحة، ومن ثم محاولة التحقق من فعالية ىذه المحسنات من خلل إجراء دراسة حالة استكشافية مع عدد من الدارسين والمطورين ذوي الخبرة. ولقد اظيرت نتائج الدراسة مؤشرات ايجابية واضحة حول استخدام محسنات بناء الجمل التركيبية في كتابة البرمجيات، ولقد ساعدت ىذه المحسنات في الحد من األخطاء النصية وجعل تركيب الجمل في لغات البرمجة اكثر وضوحاا واسيل لمق ارءة والكتابة والتتبع وفيم الدالالت

    Extensible Languages for Flexible and Principled Domain Abstraction

    Get PDF
    Die meisten Programmiersprachen werden als Universalsprachen entworfen. Unabhängig von der zu entwickelnden Anwendung, stellen sie die gleichen Sprachfeatures und Sprachkonstrukte zur Verfügung. Solch universelle Sprachfeatures ignorieren jedoch die spezifischen Anforderungen, die viele Softwareprojekte mit sich bringen. Als Gegenkraft zu Universalsprachen fördern domänenspezifische Programmiersprachen, modellgetriebene Softwareentwicklung und sprachorientierte Programmierung die Verwendung von Domänenabstraktion, welche den Einsatz von domänenspezifischen Sprachfeatures und Sprachkonstrukten ermöglicht. Insbesondere erlaubt Domänenabstraktion Programmieren auf dem selben Abstraktionsniveau zu programmieren wie zu denken und vermeidet dadurch die Notwendigkeit Domänenkonzepte mit universalsprachlichen Features zu kodieren. Leider ermöglichen aktuelle Ansätze zur Domänenabstraktion nicht die Entfaltung ihres ganzen Potentials. Einerseits mangelt es den Ansätzen für interne domänenspezifische Sprachen an Flexibilität bezüglich der Syntax, statischer Analysen, und Werkzeugunterstützung, was das tatsächlich erreichte Abstraktionsniveau beschränkt. Andererseits mangelt es den Ansätzen für externe domänenspezifische Sprachen an wichtigen Prinzipien, wie beispielsweise modularem Schließen oder Komposition von Domänenabstraktionen, was die Anwendbarkeit dieser Ansätze in der Entwicklung größerer Softwaresysteme einschränkt. Wir verfolgen in der vorliegenden Doktorarbeit einen neuartigen Ansatz, welcher die Vorteile von internen und externen domänenspezifischen Sprachen vereint um flexible und prinzipientreue Domänenabstraktion zu unterstützen. Wir schlagen bibliotheksbasierte erweiterbare Programmiersprachen als Grundlage für Domänenabstraktion vor. In einer erweiterbaren Sprache kann Domänenabstraktion durch die Erweiterung der Sprache mit domänenspezifischer Syntax, statischer Analyse, und Werkzeugunterstützung erreicht werden . Dies ermöglicht Domänenabstraktionen die selbe Flexibilität wie externe domänenspezifische Sprachen. Um die Einhaltung üblicher Prinzipien zu gewährleisten, organisieren wir Spracherweiterungen als Bibliotheken und verwenden einfache Import-Anweisungen zur Aktivierung von Erweiterungen. Dies erlaubt modulares Schließen (durch die Inspektion der Import-Anweisungen), unterstützt die Komposition von Domänenabstraktionen (durch das Importieren mehrerer Erweiterungen), und ermöglicht die uniforme Selbstanwendbarkeit von Spracherweiterungen in der Entwicklung zukünftiger Erweiterungen (durch das Importieren von Erweiterungen in einer Erweiterungsdefinition). Die Organisation von Erweiterungen in Form von Bibliotheken ermöglicht Domänenabstraktionen die selbe Prinzipientreue wie interne domänenspezifische Sprachen. Wir haben die bibliotheksbasierte erweiterbare Programmiersprache SugarJ entworfen und implementiert. SugarJ Bibliotheken können Erweiterungen der Syntax, der statischen Analyse, und der Werkzeugunterstützung von SugarJ deklarieren. Eine syntaktische Erweiterung besteht dabei aus einer erweiterten Syntax und einer Transformation der erweiterten Syntax in die Basissyntax von SugarJ. Eine Erweiterung der Analyse testet Teile des abstrakten Syntaxbaums der aktuellen Datei und produziert eine Liste von Fehlern. Eine Erweiterung der Werkzeugunterstützung deklariert Dienste wie Syntaxfärbung oder Codevervollständigung für bestimmte Sprachkonstrukte. SugarJ Erweiterungen sind vollkommen selbstanwendbar: Eine erweiterte Syntax kann in eine Erweiterungsdefinition transformiert werden, eine erweiterte Analyse kann Erweiterungsdefinitionen testen, und eine erweiterte Werkzeugunterstützung kann Entwicklern beim Definieren von Erweiterungen assistieren. Um eine Quelldatei mit Erweiterungen zu verarbeiten, inspizieren der SugarJ Compiler und die SugarJ IDE die importierten Bibliotheken um die aktiven Erweiterungen zu bestimmen. Der Compiler und die IDE adaptieren den Parser, den Codegenerator, die Analyseroutine und die Werkzeugunterstützung der Quelldatei entsprechend der aktiven Erweiterungen. Wir beschreiben in der vorliegenden Doktorarbeit nicht nur das Design und die Implementierung von SugarJ, sondern berichten darüber hinaus über Erweiterungen unseres ursprünglich Designs. Insbesondere haben wir eine Generalisierung des SugarJ Compilers entworfen und implementiert, die neben Java alternative Basissprachen unterstützt. Wir haben diese Generalisierung verwendet um die bibliotheksbasierten erweiterbaren Programmiersprachen SugarHaskell, SugarProlog, und SugarFomega zu entwickeln. Weiterhin haben wir SugarJ ergänzt um polymorphe Domänenabstraktion und Kommunikationsintegrität zu unterstützen. Polymorphe Domänenabstraktion ermöglicht Programmierern mehrere Transformationen für die selbe domänenspezifische Syntax bereitzustellen. Dies erhöht die Flexibilität von SugarJ und unterstützt bekannte Szenarien aus der modellgetriebenen Entwicklung. Kommunikationsintegrität spezifiziert, dass die Komponenten eines Softwaresystems nur über explizite Kanäle kommunizieren dürfen. Im Kontext von Codegenerierung stellt dies eine interessante Eigenschaft dar, welche die Generierung von impliziten Modulabhängigkeiten untersagt. Wir haben Kommunikationsintegrität als weiteres Prinzip zu SugarJ hinzugefügt. Basierend auf SugarJ und zahlreicher Fallstudien argumentieren wir, dass flexible und prinzipientreue Domänenabstraktion ein skalierbares Programmiermodell für die Entwicklung komplexer Softwaresysteme darstellt

    Formal aspects of component software

    Get PDF
    This is the pre-proceedings of 6th International Workshop on Formal Aspects of Component Software (FACS'09)

    Context-oriented functional programming

    No full text
    The modern computing landscape, featuring heterogeneous interconnected mobile devices, poses new challenges and opportunities for application development. Mobility and heterogeneity of devices imply that applications need to adapt depending on their execution context. Contexts such as the device that an application is running on, or the power profile, may require widespread program-wide adaptation. Dealing with this adaptation can lead to the introduction of subtle bugs, and subsequent runtime errors, such as null pointer exceptions when context has not been initialized. Current approaches to encoding context-aware behaviour are either very flexible but unsafe, or safe but too restrictive. In this thesis we present a new approach to context-aware application development based on functional programming, which attempts to be both flexible and safe. In order to do so, we present an embedded domain specific language in Haskell, where we explore the design space of context-dependent values within a functional programming language. In particular, we explore how to use Haskell's type system to automatically derive the context dependencies needed by a computation at the type level, and use this to ensure that required context is always available. We then develop context-dependent types to ensure safety in the presence of program-wide variation. By using different return types for different modes of operation of the program when appropriate, we can ensure isolation between them through type checking. We extend our domain specific language to support context-dependent types, whilst retaining type soundness, as well as sound and (we conjecture) complete type inference. We present a core calculus for these features and a high-level language that extends the calculus with practical programming features. Evaluation is performed by examining a context-aware application requiring exactly the kind of adaptation that is unsafe to implement in current approaches. We show that our language compares favourably to the state of the art in terms of both safety and code clarity.Open Acces

    Entwurf eines Objektmodells für semistrukturierte Daten im Kontext von XML Content Management Systemen

    Get PDF
    Seit einigen Jahren werden zur Erstellung und Pflege umfangreicher Websites vornehmlich Content Management Systeme (CMS) eingesetzt. Die überwiegende Entwicklungsarbeit wurde bei diesen Systemen in immer mächtigere Templatesprachen und aufwändigere Benutzeroberflächen investiert. Aspekte, die das zugrunde liegende Datenmodell betreffen, wurden dabei allerdings vernachlässigt: zumeist wird mehr oder weniger direkt auf eine Datenbank zugegriffen. Ziel der vorliegenden Arbeit ist der Entwurf einer auf die CMS-Aufgabenstellung ausgerichteten Architektur, deren Datenmodell zusammen mit einer darauf abgestimmten Templatesprache die Entwicklung neuer Webangebote effizienter und einfacher machen kann. Zunächst werden die Anforderungen an ein Datenmodell für CMS erarbeitet. Darauf basierend wird ein objektorientiertes Modell entwickelt und mittels einer formalen Semantikbeschreibung definiert. Das Modell unterstützt inhärent die typischen hierarchischen Strukturen von Websites. Vererbung ist durch Verwendung einer speziellen Form der Familienpolymorphie sowohl zwischen einzelnen Klassen als auch zwischen kompletten Webanwendungen möglich. Ein Entwickler kann große Teile von vorhandenem Code auf dem Wege der Vererbung wiederverwenden. Eine Zerlegung von Objekten in feingranulare Bestandteile ermöglicht eine weitere Reduzierung von Redundanzen bei der Modellierung. Als Bindeglied zwischen Daten und publizierten Dokumenten haben sich Templates bewährt. Eine Analyse der Anforderungen und vorhandenen Ansätze führt zu der Entscheidung für eine funktionale Templatesprache. Diese Templatesprache und die Beschreibung des objektorientierten Datenmodells werden zu einer einheitlichen Sprache integriert, die zudem durch die die Einbindung von XML die Ausgabe in unterschiedlichen Dokumentenformaten unterstützt.Design of an object model for semistructured data in context of XML content management systems For several years, mostly Content Management Systems (CMS) are used for the creation and maintenance of large web sites. Most of the development effort of these systems has been put in more sophisticated template languages und complex user interfaces. Aspects regarding the underlying data model have been neglected though: the database is accessed more or less directly in most cases. The goal of the present thesis is the design of an architecture which is attuned to the tasks of CMS, the data model of which together with a template language can make the development of new web sites more efficient and easier. At first, the requirements on a data model for CMS are compiled. Thereupon an object-oriented model is developed and defined by means of a formal semantic description. This model inherently supports the typical hierarchical structures of websites. Inheritance is possible between single classes as well as between entire web applications by utilizing a special kind of family polymorphism. A developer can re-use large parts of existing code through inheritance. Moreover, a decomposition of objects into fine-grained parts allows the reduction of redundancies in modelling. Templates have proved as the crucial link between data and published pages. An analysis of requirements and existing approaches leads to the decision for a functional template language. This template language and the description of the objekt-oriented data model are integrated into a uniform language which furthermore supports the output in different document formats by integrating XML
    corecore