An Agile Approach to Language Modelling and Development

Total Page:16

File Type:pdf, Size:1020Kb

An Agile Approach to Language Modelling and Development ISSE manuscript No. (will be inserted by the editor) An Agile Approach to Language Modelling and Development Adrian Johnstone · Peter D. Mosses · Elizabeth Scott Received: ??? / Accepted: ??? Abstract We have developed novel techniques for 1 Introduction component-based specification of programming languages. In our approach, the semantics of each fundamental We are developing a component-based approach to language programming construct is specified independently, using an modelling. Our models are formal specifications of syntax inherently modular framework such that no reformulation and semantics. is needed when constructs are combined. A language Language designers already use formal specifications specification consists of an unrestricted context-free for syntax; we claim that formal semantics can be useful grammar for the syntax of programs, together with an and worthwhile for them too, provided that the following analysis of each language construct in terms of fundamental features are combined in a single, coherent framework: constructs. An open-ended collection of fundamental – a substantial collection of specification components that constructs is currently being developed. can be used without change; When supported by appropriate tools, our techniques – accessible formalisms and notation; allow a more agile approach to the design, modelling, – tool support for developing and checking specifications; and implementation of programming and domain-specific – tools for generating (at least prototype) implementations languages. In particular, our approach encourages lan- from tentative language specifications; guage designers to proceed incrementally, using prototype – successful case studies involving major languages; and implementations generated from specifications to test – an online repository providing access to all specifica- tentative designs. The components of our specifications tions. are independent and highly reusable, so initial language specifications can be rapidly produced, and can easily evolve Our aim is to provide such a framework. in response to changing design decisions. Our component-based approach supports agile mod- elling, so language designers may start from a rough model In this paper, we outline our approach, and relate it to of their initial design – possibly making extensive reuse the practices and principles of agile modelling. of components from previously-developed models – ex- periment with a generated prototype implementation, then Keywords Programming language models · Syntax · adjust and extend the model easily as their design evolves. Semantics · Agile methods In contrast, conventional frameworks for semantic spec- ification are inherently non-agile, because adding a new feature to the specified language may require reformulation A. Johnstone · E. Scott of the entire specification. For example, suppose we have Dept. of Computer Science, Royal Holloway, University of London, Egham, TW20 0EX, United Kingdom specified a conventional structural operational semantics [35] for a purely functional language; extending the lan- P. D. Mosses Dept. of Computer Science, Swansea University, guage with assignable variables or concurrent processes Singleton Park, Swansea, SA2 8PP, United Kingdom requires adding further arguments to the specified transition Tel.: +44 1792 602249, Fax: +44 1792 295708 relation, and those arguments have to be added in the E-mail: [email protected] original specification. Conventional denotational semantics 2 suffers from the same problem. Agile language modelling 2 Syntax is not possible when the specification of each construct depends on which other constructs it is to be combined with. Language syntax is often specified in several parts, sepa- With few exceptions, language designers have not them- rating the lexical components or words from the phrases or selves produced formal specifications of their languages’ sentences. intended semantics. For instance, the Haskell designers Context-free grammars have been the preferred means to were familiar with the conventional modelling frameworks, specify the phrase-level syntax since the time of the Algol 60 and “resorted to denotational semantics to discuss design report. Reference manuals and standards documents use options”, but they also reported [15]: grammars which are comfortable for the explication of the semantics, but typically these are unsuitable for direct “One of our explicit goals was to produce a language implementation using near-deterministic parser generators that had a formally defined type system and seman- such as Bison and JavaCC. Most language standards ignore tics. [. ] We were inspired by our brothers and this problem, although the original Java Language Specifi- sisters in the ML community, who had shown that it cation [11] provides two grammars – one for explication and was possible to give a complete formal definition of one intended for use with parser generators – and its authors a language, and the Definition of Standard ML [24] went to some trouble to establish their equivalence. had a place of honour on our shelves. Neither the separation between lexical and phrase-level syntax, nor having two separate grammars for phrase-level Nevertheless, we never achieved this goal. [. ] we syntax, is consistent with an agile approach to language always found it a little hard to admit that a language design. They make it difficult to move rapidly to proto- as principled as Haskell aspires to be has no formal typing and to adopt incremental design because several definition. But that is the fact of the matter, and inter-related data structures have to be maintained, and it is not without its advantages. In particular, the changing one requires corresponding changes to the others. absence of a formal language definition does allow The quality of the language design may be compromised the language to evolve more easily, because the because the design of the lexical components cannot exploit costs of producing fully formal specifications of the phrase-level context. Moreover, one must ensure that any proposed change are heavy, and by themselves the grammar used to define the syntax and the grammar discourage changes.” used to specify the semantics generate the same language. Maintaining this language equivalence is not trivial: by the We claim that using our component-based approach, the cost time of the third edition of the Java Language Specification of specifying – and experimenting with – proposed changes [12] significant errors had crept into the implementation would be much lighter than with conventional frameworks. grammar. For implementation it would be far better to use In the rest of this paper, we outline our approach and the explication grammar, which is the base grammar used analyse its agility. Section 2 is concerned with the speci- by the language’s designers, than a derived grammar of fication of language syntax. It points out some drawbacks doubtful accuracy. of the conventional approach, and proposes the use of The ASF+SDF Meta-Environment [3] and Stratego/XT general context-free grammars, for which efficient parsing [42] are environments that provide some of the features algorithms have recently been developed. Section 3 intro- discussed in this section, and indeed the ASF+SDF Meta- duces the concept of language-independent fundamental Environment was used to implement the Action Environ- constructs, and illustrates how language syntax can be ment [5]. The SDF parser generator which underpins both translated to such constructs. Section 4 recalls two frame- tools uses Farshi-style GLR parsing with SLR(1) tables, and works which allow the semantics of individual constructs the user is provided with tools that allow some parse-time to be specified independently; using these frameworks, the disambiguation [4]. semantic specifications of fundamental constructs become In practice, SDF tables are monolithic and must be highly reusable components of complete language specifica- regenerated when specifications change. This can be very tions. Section 5 briefly outlines a proposed online repository time consuming. In addition, the parse-time features are not for component-based specifications of programming and formally well-founded, and parsers that employ them can domain-specific languages, and Section 6 describes the fail to correctly match the context free language suggested kinds of tool support that are needed for practical use of by the context free rules in their specifications: the language our approach. Section 7 considers the extent to which our recognised by the parser can change as disambiguation approach adheres to the practices and principles of agile specifications are added, and in fact the recognised language modelling. Section 8 reviews related approaches. Section 9 may become context sensitive. This makes it very hard to concludes with a summary of our claims. prove completeness and correctness of the resulting parsers. 3 Our approach is based on the use of GLL parsers [38] aiming to maximise their mnemonic value without bias which are fully general, efficient at parse time and, most towards any particular language family. importantly from a software developer’s perspective, require Funcos are classified according to the kind of value that no more processing time to generate than conventional they normally compute when executed: Cmd classifies com- recusive descent parsers. As a result, regenerating the source mands, which compute nothing (or some fixed null value); code for a parser typically takes less time than compil-
Recommended publications
  • Uncovering Dynamic Semantic Networks in the Brain Using Novel Approaches for EEG/MEG Connectome Reconstruction
    Uncovering Dynamic Semantic Networks in the Brain Using Novel Approaches for EEG/MEG Connectome Reconstruction SEYEDEHREZVAN FARAHIBOZORG SELWYN COLLEGE MRC COGNITION AND BRAIN SCIENCES UNIT SCHOOL OF CLINICAL MEDICINE UNIVERSITY OF CAMBRIDGE This dissertation is submitted for the degree of Doctor of Philosophy February 2018 Uncovering Dynamic Semantic Networks in the Brain Using Novel Approaches for EEG/MEG Connectome Reconstruction Seyedehrezvan Farahibozorg The current thesis addresses some of the unresolved predictions of recent models of the semantic brain system, such as the hub-and-spokes model. In particular, we tackle different aspects of the hypothesis that a widespread network of interacting heteromodal (hub(s)) and unimodal (spokes) cortices underlie semantic cognition. For this purpose, we use connectivity analyses, measures of graph theory and permutation-based statistics with source reconstructed Electro- /MagnetoEncephaloGraphy (EEG/MEG) data in order to track dynamic modulations of activity and connectivity within the semantic networks while a concept unfolds in the brain. Moreover, in order to obtain more accurate connectivity estimates of the semantic networks, we propose novel methods for some of the challenges associated with EEG/MEG connectivity analysis in source space. We utilised data-driven analyses of EEG/MEG recordings of visual word recognition paradigms and found that: 1) Bilateral Anterior Temporal Lobes (ATLs) acted as potential processor hubs for higher- level abstract representation of concepts. This was reflected in modulations of activity by multiple contrasts of semantic variables; 2) ATL and Angular Gyrus (AG) acted as potential integrator hubs for integration of information produced in distributed semantic areas. This was observed using Dynamic Causal Modelling of connectivity among the main left-hemispheric candidate hubs and modulations of functional connectivity of ATL and AG to semantic spokes by word concreteness.
    [Show full text]
  • What Does Semantic Tiling of the Cortex Tell Us About Semantics? MARK ⁎ Lawrence W
    Neuropsychologia 105 (2017) 18–38 Contents lists available at ScienceDirect Neuropsychologia journal homepage: www.elsevier.com/locate/neuropsychologia What does semantic tiling of the cortex tell us about semantics? MARK ⁎ Lawrence W. Barsalou University of Glasgow, UK ARTICLE INFO ABSTRACT Keywords: Recent use of voxel-wise modeling in cognitive neuroscience suggests that semantic maps tile the cortex. Semantics Although this impressive research establishes distributed cortical areas active during the conceptual processing Conceptual processing that underlies semantics, it tells us little about the nature of this processing. While mapping concepts between Neural encoding and decoding Marr's computational and implementation levels to support neural encoding and decoding, this approach ignores Multi-voxel pattern analysis Marr's algorithmic level, central for understanding the mechanisms that implement cognition, in general, and Explanatory levels conceptual processing, in particular. Following decades of research in cognitive science and neuroscience, what Cognitive mechanisms do we know so far about the representation and processing mechanisms that implement conceptual abilities? Most basically, much is known about the mechanisms associated with: (1) feature and frame representations, (2) grounded, abstract, and linguistic representations, (3) knowledge-based inference, (4) concept composition, and (5) conceptual flexibility. Rather than explaining these fundamental representation and processing mechanisms, semantic tiles simply provide a trace of their activity over a relatively short time period within a specific learning context. Establishing the mechanisms that implement conceptual processing in the brain will require more than mapping it to cortical (and sub-cortical) activity, with process models from cognitive science likely to play central roles in specifying the intervening mechanisms.
    [Show full text]
  • Former Associate Professor of Linguistics) [email protected] Working Version 16.2
    Cognitax Tool Grammar: Re-factoring the Generative Program A pervasive action dimension for linguistic description, theory and models 12 Lawrence R. Smith (Former Associate Professor of Linguistics) [email protected] Working Version 16.2 This is a preliminary and frequently changing dynamic document responsive to reader critique and is likely not the latest version available by contacting the author. (Note the title has changed.3) The later version always supersedes the earlier and typically may include major revisions. Comments and challenges are welcome for future versions. The extended version under development is freely available on request from the author. 1 We are indebted for the incisive comments of readers who suggested constructive improvements even as the ideas presented here were sometimes at considerable variance with their own current working frameworks. We owe special thanks to the following for comments on either parts or the whole of this work: John Hewson, Paul Postal, Vit Bubenik, Pieter Seurens and Willem de Reuse. 2We had considered an alternative title for this paper since it seeks to explain malformation: “A Review of Verbal Misbehavior” 3 From version 12.9 ‘Cognitax’ replaces ‘Pragmatax’ to clarify that Tool Grammar is distinct from pragmatics, as well as separate work that may refer to grammatical tools. Both were absent from the title in an earlier version. 1 Operative Motivating Hypotheses of Tool Grammar 1. There exists an empirically evident necessity for representation of linguistic structural action intent which has been generally overlooked in the theory of language, including centralized configurational syntax in the generative program. 2. Linguistic structural action intent extends the basic Chomskyan focus on linguistic creativity (unbounded generation from finite means) to a new level of representation useful for explaining and constraining the inventive means by which the species- specific features of human language are effected.
    [Show full text]
  • Chapter 1 Introduction
    Chapter Intro duction A language is a systematic means of communicating ideas or feelings among people by the use of conventionalized signs In contrast a programming lan guage can be thought of as a syntactic formalism which provides ameans for the communication of computations among p eople and abstract machines Elements of a programming language are often called programs They are formed according to formal rules which dene the relations between the var ious comp onents of the language Examples of programming languages are conventional languages likePascal or C and also the more the oretical languages such as the calculus or CCS A programming language can b e interpreted on the basis of our intuitive con cept of computation However an informal and vague interpretation of a pro gramming language may cause inconsistency and ambiguity As a consequence dierent implementations maybegiven for the same language p ossibly leading to dierent sets of computations for the same program Had the language in terpretation b een dened in a formal way the implementation could b e proved or disproved correct There are dierent reasons why a formal interpretation of a programming language is desirable to give programmers unambiguous and p erhaps informative answers ab out the language in order to write correct programs to give implementers a precise denition of the language and to develop an abstract but intuitive mo del of the language in order to reason ab out programs and to aid program development from sp ecications Mathematics often emphasizes
    [Show full text]
  • Basic Action Theory Basic Research in Computer Science
    BRICS BRICS RS-95-25 S. B. Lassen: Basic Action Theory Basic Research in Computer Science Basic Action Theory Søren B. Lassen BRICS Report Series RS-95-25 ISSN 0909-0878 May 1995 Copyright c 1995, BRICS, Department of Computer Science University of Aarhus. All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent publications in the BRICS Report Series. Copies may be obtained by contacting: BRICS Department of Computer Science University of Aarhus Ny Munkegade, building 540 DK - 8000 Aarhus C Denmark Telephone: +45 8942 3360 Telefax: +45 8942 3255 Internet: [email protected] BRICS publications are in general accessible through WWW and anonymous FTP: http://www.brics.dk/ ftp ftp.brics.dk (cd pub/BRICS) Basic Action Theory ∗ S. B. Lassen BRICS† Department of Computer Science University of Aarhus email: [email protected] URL: http://www.daimi.aau.dk/~thales Abstract Action semantics is a semantic description framework with very good pragmatic properties but until now a rather weak theory for reasoning about programs. A strong action theory would have a great practical potential, as it would facilitate reasoning about the large class of programming languages that can be described in action semantics. This report develops the foundations for a richer action theory, by bringing together concepts and techniques from process theory and from work on operational reasoning about functional programs. Se- mantic preorders and equivalences in the action semantics setting are studied and useful operational techniques for establishing contextual equivalences are presented.
    [Show full text]
  • Formal Semantics of Programming Languages —Anoverview—
    Electronic Notes in Theoretical Computer Science 148 (2006) 41–73 www.elsevier.com/locate/entcs Formal Semantics of Programming Languages —AnOverview— Peter D. Mosses1 Department of Computer Science University of Wales Swansea Swansea, United Kingdom Abstract These notes give an overview of the main frameworks that have been developed for specifying the formal semantics of programming languages. Some of the pragmatic aspects of semantic de- scriptions are discussed, including modularity, and potential applicability to visual and modelling languages. References to the literature provide starting points for further study. Keywords: semantics, operational semantics, denotational semantics, SOS, MSOS, reduction semantics, abstract state machines, monadic semantics, axiomatic semantics, action semantics, programming languages, modelling languages, visual languages 1 Introduction £ A semantics for a programming language models the computational meaning of each program. The computational meaning of a program—i.e. what actually happens when a program is executed on some real computer—is far too complex to be de- scribed in its entirety. Instead, a semantics for a programming language pro- vides abstract entities that represent just the relevant features of all possible executions, and ignores details that have no relevance to the correctness of implementations. Usually, the only features deemed to be relevant are the relationship between input and output, and whether the execution terminates 1 Email: [email protected] 1571-0661/$ – see front matter © 2006 Elsevier B.V. All rights reserved. doi:10.1016/j.entcs.2005.12.012 42 P.D. Mosses / Electronic Notes in Theoretical Computer Science 148 (2006) 41–73 or not. Details specific to implementations, such as the actual machine ad- dresses where the values of variables are stored, the possibility of ‘garbage collection’, and the exact running time of the program, may all be ignored in the semantics.
    [Show full text]
  • Chapter 13 ACTION SEMANTICS
    Chapter 13 ACTION SEMANTICS he formal methods discussed in earlier chapters, particularly denotational semantics and structural operational semantics, have T been used extensively to provide accurate and unambiguous defini- tions of programming languages. Unlike informal definitions written in En- glish or some other natural language, formal definitional techniques can serve as a basis for proving properties of programming languages and the correctness of programs. Although most programmers rely on informal speci- fications of languages, these definitions are often vague, incomplete, and even erroneous. English does not lend itself to precise and unambiguous definitions. In spite of the arguments for relying on formal specifications of programming languages, programmers generally avoid them when learning, trying to un- derstand, or even implementing a programming language. They find formal definitions notationally dense, cryptic, and unlike the way they view the be- havior of programming languages. Furthermore, formal specifications are difficult to create accurately, to modify, and to extend. Formal definitions of large programming languages are overwhelming to both the language de- signer and the language user, and therefore remain mostly unread. Programmers understand programming languages in terms of basic concepts such as control flow, bindings, modifications of storage, and parameter pass- ing. Formal specifications often obscure these notions to the point that the reader must invest considerable time to determine whether a language fol- lows static or dynamic scoping and how parameters are actually passed. Sometimes the most fundamental concepts of the programming language are the hardest to understand in a formal definition. Action semantics, which attempts to answer these criticisms of formal meth- ods for language specification, has been developed over the past few years by Peter Mosses with the collaboration of David Watt.
    [Show full text]
  • Action Semantics
    Action Semantics Formal Syntax BNF — In common use Formal Specification of Programming Languages Formal Semantics Advantages: Denotational semantics • Unambiguous definitions Structural operational semantics • Basis for proving properties of programs and languages Axiomatic semantics • Mechanical generation of language Algebraic semantics processors Used only by specialists in prog. languages. Disadvantages: Action Semantics • Notationally dense • Developed by Peter Mosses and David Watt • Often cryptic • Based on ordinary computation concepts • Unlike the way programmers view languages • Difficult to create and modify accurately • English-like notation (readable) • Completely formal, but can be understood informally • Reflects the ordinary computational concepts of programming languages Chapter 13 1 Chapter 13 2 Specifying a Programming Language Introduction to Action Semantics An action specification breaks into two parts: Three kinds of first-order entities: • Data: Basic mathematical values Programming Language • Yielders: Expressions that evaluate to data Definition of the constructs of a using current information Upper level language in terms of action notation. • Actions: Dynamic, computational entities Action Notation that model operational behavior Specification of the meaning Lower level of action notation. Data and Sorts Meaning of Actions Data manipulated by a programming language • integers • cells • booleans • tuples Meaning of a language is defined by mapping program phrases to actions • maps whose performance describes the execution of the program phrases. Chapter 13 3 Chapter 13 4 Classification of Data Data Specification Data classified according to how far it tends to module be propagated during action performance. TruthValues exports sort TruthValue Transient operations Tuples of data given as the immediate results true : TruthValue of action performance. Use them or lose false : TruthValue them.
    [Show full text]
  • On Excusable and Inexcusable Failures Towards an Adequate Notion of Translation Correctness
    On Excusable and Inexcusable Failures Towards an Adequate Notion of Translation Correctness Markus M¨uller-Olm and Andreas Wolf ? 1 Fachbereich Informatik, LS V, Universit¨at Dortmund, 44221 Dortmund, Germany [email protected] 2 Institut f¨ur Informatik und Praktische Mathematik, Christian-Albrechts-Universit¨at, 24105 Kiel, Germany [email protected] Abstract. The classical concepts of partial and total correctness iden- tify all types of runtime errors and divergence. We argue that the as- sociated notions of translation correctness cannot cope adequately with practical questions like optimizations and finiteness of machines. As a step towards a solution we propose more fine-grained correctness no- tions, which are parameterized in sets of acceptable failure outcomes, and study a corresponding family of predicate transformers that gener- alize the well-known wp and wlp transformers. We also discuss the utility of the resulting setup for answering compiler correctness questions. Keywords: compiler, correctness, divergence, refinement, runtime-error, predicate transformer, verification 1 Introduction Compilers are ubiquitous in today’s computing environments. Their use ranges from the traditional translation of higher programming languages to conversions between data formats of a large variety. The rather inconspicuous use of compil- ers helps to get rid of architecture or system specific representations and allows thus to handle data or algorithms in a more convenient abstract form. There is a standard theory for the syntactic aspects of compiler construction which is well-understood and documented in a number of text books (e.g. [1, 24– 26]). It is applied easily in practice via automated tools like scanner and parser generators.
    [Show full text]
  • Type Inference for Action Semantics Susan Johanna Even Iowa State University
    Iowa State University Capstones, Theses and Retrospective Theses and Dissertations Dissertations 1990 Type inference for action semantics Susan Johanna Even Iowa State University Follow this and additional works at: https://lib.dr.iastate.edu/rtd Part of the Computer Sciences Commons Recommended Citation Even, Susan Johanna, "Type inference for action semantics " (1990). Retrospective Theses and Dissertations. 9492. https://lib.dr.iastate.edu/rtd/9492 This Dissertation is brought to you for free and open access by the Iowa State University Capstones, Theses and Dissertations at Iowa State University Digital Repository. It has been accepted for inclusion in Retrospective Theses and Dissertations by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. INFORMATION TO USERS The most advanced technology has been used to photograph and reproduce this manuscript from the microfilm master. UMI films the text directly from the original or copy submitted. Thus, some thesis and dissertation copies are in typewriter face, while others may be from any type of computer printer. The quality of this reproduction is dependent upon the quality of the copy submitted. Broken or indistinct print, colored or poor quality illustrations and photographs, print bleedthrough, substandard margins, and improper alignment can adversely affect reproduction. In the unlikely event that the author did not send UMI a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletion. Oversize materials (e.g., maps, drawings, charts) are reproduced by sectioning the original, beginning at the upper left-hand corner and continuing from left to right in equal sections with small overlaps.
    [Show full text]
  • Proceedings of the KWEPSY2007 Knowledge Web Phd Symposium
    Proceedings of the KWEPSY2007 Knowledge Web PhD Symposium 2007 co-located with the 4th Annual European Semantic Web Conference [ESWC2007] June 6, 2007 Innsbruck, Austria Edited by Elena Simperl, University of Innsbruck, Austria Joerg Diederich, L3S Research Center, Hannover, Germany Guus Schreiber, Vrije Universiteit Amsterdam, Netherlands © 2007 for the individual papers by the papers' authors. Copying permitted for private and academic purposes. Re-publication of material on this page requires permission by the copyright owners. Table of Contents Foreword 4 Sponsors 9 The technical program included the following full papers: Caching for Semantic Web Services, Michael Stollberg, DERI, University of Innsbruck 10 Towards Novel Techniques for Reasoning in Expressive Description Logics based on 15 Binary Decision Diagrams, Uwe Keller, DERI, University of Innsbruck Process Mediation in Semantic Web Services, Emilia Cimpian, DERI, University of 21 Innsbruck Scalable Web Service Composition with Partial Matches, Adina Sirbu, Jörg Hoffmann, 26 DERI, University of Innsbruck Improving Email Conversation Efficiency by Enhancing Email with Semantics, Simon 31 Scerri, DERI, National University of Ireland Galway Towards Distributed Ontologies with Description Logics, Martin Homola, Comenius 36 University A Framework for Distributed Reasoning on the Semantic Web Based on Open Answer 41 Set Programming, Cristina Feier, DERI, University of Innsbruck Logic as a power tool to model negotiation mechanisms in the Semantic Web Era, 46 Azzura Ragone, SisInfLab,
    [Show full text]
  • Action Semantics AS 2000 Basic Research in Computer Science
    BRICS Basic Research in Computer Science BRICS NS-00-6 Mosses & de Moura (eds.): AS 2000 Proceedings Proceedings of the Third International Workshop on Action Semantics AS 2000 Recife, Brazil, May 15–16, 2000 Peter D. Mosses Hermano Perrelli de Moura (editors) BRICS Notes Series NS-00-6 ISSN 0909-3206 August 2000 Copyright c 2000, Peter D. Mosses & Hermano Perrelli de Moura (editors). BRICS, Department of Computer Science University of Aarhus. All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Notes Series publications. Copies may be obtained by contacting: BRICS Department of Computer Science University of Aarhus Ny Munkegade, building 540 DK–8000 Aarhus C Denmark Telephone: +45 8942 3360 Telefax: +45 8942 3255 Internet: [email protected] BRICS publications are in general accessible through the World Wide Web and anonymous FTP through these URLs: http://www.brics.dk ftp://ftp.brics.dk This document in subdirectory NS/00/6/ AS 2000 Third International Workshop on Action Semantics 15-16 May 2000, Recife, Brazil Proceedings Foreword Action Semantics1 is a practical framework for formal semantic description of programming languages. Since its appearance in 1992, Action Semantics has been used to describe major languages such as Pascal, SML, ANDF, and Java, and various tools for processing action-semantic descriptions have been developed. The AS 2000 workshop included reports of recent achievements with the foun- dations and applications of Action Semantics, presentations and demonstrations of tool support for action-semantic descriptions, and discussion of a proposal for a new (and significantly simpler) version of Action Notation.
    [Show full text]