5 research outputs found

    Formal Component-Based Semantics

    Get PDF
    One of the proposed solutions for improving the scalability of semantics of programming languages is Component-Based Semantics, introduced by Peter D. Mosses. It is expected that this framework can also be used effectively for modular meta theoretic reasoning. This paper presents a formalization of Component-Based Semantics in the theorem prover Coq. It is based on Modular SOS, a variant of SOS, and makes essential use of dependent types, while profiting from type classes. This formalization constitutes a contribution towards modular meta theoretic formalizations in theorem provers. As a small example, a modular proof of determinism of a mini-language is developed.Comment: In Proceedings SOS 2011, arXiv:1108.279

    Reusable Components of Semantic Specifications

    Get PDF
    Semantic specifications of programming languages typically have poor modularity. This hinders reuse of parts of the semantics of one language when specifying a different language – even when the two languages have many constructs in common – and evolution of a language may require major reformulation of its semantics. Such drawbacks have discouraged language developers from using formal semantics to document their designs. In the PLanCompS project, we have developed a component-based approach to semantics. Here, we explain its modularity aspects, and present an illustrative case study: a component-based semantics for Caml Light. We have tested the correctness of the semantics by running programs on an interpreter generated from the semantics, comparing the output with that produced on the standard implementation of the language. Our approach provides good modularity, facilitates reuse, and should support co-evolution of languages and their formal semantics. It could be particularly useful in connection with domain-specific languages and language-driven software development

    Reusable components of semantic specifications

    Get PDF

    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.تطوير البرمجيات التطبيقية ىي ميمة يومية يقوم بيا المطورون والمبرمجون في كافة انحاء العالم، و ييدر جزء ال بأس بو من وقت المبرمجين في كتابة كممات مفتاحية بشكل متكرر في الجمل التركيبية لمبرامج وتصحيح األخطاء في بناء الجمل التركيبية، و محاولة فيم دالالت البرامج. ىذه الميام تصبح أكثر صعوبة إذا لم تكن ىناك بيئة تطوير متكاممة متاحة لإلستخدام، أو عندما يقوم المطورون بكتابة البرامج بإستخدام محررات نصوص بسيطة، وكذلك في حالة تطوير البرامج عن بعد بإستخدام برمجيات االتصال الطرفي كما في نظام التشغيل يونيكس مثلا. لقد أوجدت محسنات بناء الجمل التركيبية في لغات البرمجة لتقدم تركيبات نصية بسيطة وسيمة وجعل حياة المطورين أسيل. بناءاٌ عمى ذلك، نقترح في ىذه الدراسة مجموعة جديدة من محسنات بناء الجمل التركيبية، ونحاول معرفة ما إذا كانت ىذه المحسنات تساىم في التقميل من االخطاء اكثر وضوحاا النصية وجعل تركيب الجمل في لغات البرمجة ابسط و واسيل لمق ارءة والكتابة والتتبع وفيم دالالت البرامج. منيجية البحث المتبعة في ىذه الدراسة تقوم عمى إيجاد مجموعة من محسنات بناء الجمل التركيبية والمستخرجة من بعض لغات البرمجة المستخدمة ، إضافة الى عدد من التحسينات المقترحة، ومن ثم محاولة التحقق من فعالية ىذه المحسنات من خلل إجراء دراسة حالة استكشافية مع عدد من الدارسين والمطورين ذوي الخبرة. ولقد اظيرت نتائج الدراسة مؤشرات ايجابية واضحة حول استخدام محسنات بناء الجمل التركيبية في كتابة البرمجيات، ولقد ساعدت ىذه المحسنات في الحد من األخطاء النصية وجعل تركيب الجمل في لغات البرمجة اكثر وضوحاا واسيل لمق ارءة والكتابة والتتبع وفيم الدالالت

    A constructive approach to language definition

    No full text
    Abstract: Most approaches to formal semantics are based on the assumption that all the constructs of a language are defined together. The details of the definition of each construct can (and usually do) depend on which other constructs are included in the given language. This limits reuse of definitions of common constructs. programming construct is defined separately and independently. The semantics of a full language is obtained by translating its constructs into the basic abstract constructs, whose definitions are thus reused verbatim. The frameworks of Modular SOS and Action Semantics can both be used in conjunction with the proposed approach. Some illustrations are given. Key Words: semantics of programming languages, action semantics, structural operational semantics, modularit
    corecore