28 research outputs found

    AN ENVIRONMENT FOR ENGINEERING EXTENDED AFFIX GRAMMAR ENVIRONMENTS

    Get PDF
    Existing formalisms for the specification of programming environments are complex and strongly biased by the problems of environment generation. It has been investigated whether a simple two-level grammar, describing a programming language, can be used without further modification for the generation of an environment for that language. We believe that there is enough information in most language definitions - albeit implicitly - to generate most of the tools used in syntax-directed editors. This paper proposes some simple and elegant improvements in the use of place- holders and templates, and in the unparsing mechanism. Although the improvements are implemented in a completely newly designed prototype they can also be applied to existing syntax-directed editors to improve their workability

    Recovering Grammar Relationships for the Java Language Specification

    Get PDF
    Grammar convergence is a method that helps discovering relationships between different grammars of the same language or different language versions. The key element of the method is the operational, transformation-based representation of those relationships. Given input grammars for convergence, they are transformed until they are structurally equal. The transformations are composed from primitive operators; properties of these operators and the composed chains provide quantitative and qualitative insight into the relationships between the grammars at hand. We describe a refined method for grammar convergence, and we use it in a major study, where we recover the relationships between all the grammars that occur in the different versions of the Java Language Specification (JLS). The relationships are represented as grammar transformation chains that capture all accidental or intended differences between the JLS grammars. This method is mechanized and driven by nominal and structural differences between pairs of grammars that are subject to asymmetric, binary convergence steps. We present the underlying operator suite for grammar transformation in detail, and we illustrate the suite with many examples of transformations on the JLS grammars. We also describe the extraction effort, which was needed to make the JLS grammars amenable to automated processing. We include substantial metadata about the convergence process for the JLS so that the effort becomes reproducible and transparent

    Pristup integraciji tehničkih prostora zasnovan na preslikavanjima iinženjerstvu vođenom modelima

    Get PDF
    In order to automate development of integration adapters in industrial settings, a model-driven approach to adapter specification is devised. In this approach, a domain-specific modeling language is created to allow specification of mappings between integrated technical spaces. Also proposed is the mapping automation engine that comprises reuse and alignment algorithms. Based on mapping specifications, executable adapters are automatically generated and executed. Results of approach evaluations indicate that it is possible to use a model-driven approach to successfully integrate technical spaces and increase the automation by reusing domainspecific mappings from previously created adapters.За потребе повећања степена аутоматизације развоја адаптера за интеграцију у индустријском окружењу, осмишљен је моделом вођен приступ развоју адаптера. У оквиру овог приступа развијен је наменски језик за спецификацију пресликавања између техничких простора који су предмет интеграције. Приступ обухвата и алгоритме за поравнање и поновно искориштење претходно креираних пресликавања са циљем аутоматизације процеса спецификације. На основу креираних пресликавања, могуће je аутоматски генерисати извршиви код адаптера. У испитивањима приступа, показано је да је могуће успешно применити моделом вођен приступ у интеграцији техничких простора као и да је могуће успешно повећати степен аутоматизације поновним искоришћењем претходно креираних пресликавања.Za potrebe povećanja stepena automatizacije razvoja adaptera za integraciju u industrijskom okruženju, osmišljen je modelom vođen pristup razvoju adaptera. U okviru ovog pristupa razvijen je namenski jezik za specifikaciju preslikavanja između tehničkih prostora koji su predmet integracije. Pristup obuhvata i algoritme za poravnanje i ponovno iskorištenje prethodno kreiranih preslikavanja sa ciljem automatizacije procesa specifikacije. Na osnovu kreiranih preslikavanja, moguće je automatski generisati izvršivi kod adaptera. U ispitivanjima pristupa, pokazano je da je moguće uspešno primeniti modelom vođen pristup u integraciji tehničkih prostora kao i da je moguće uspešno povećati stepen automatizacije ponovnim iskorišćenjem prethodno kreiranih preslikavanja

    Structured editing of literate programs

    Get PDF

    Recovering grammar relationships for the Java language specification

    Get PDF
    Grammar convergence is a method that helps in discovering relationships between different grammars of the same language or different language versions. The key element of the method is the operational, transformation-based representation of those relationships. Given input grammars for convergence, they are transformed until they are structurally equal. The transformations are composed from primitive operators; properties of these operators and the composed chains provide quantitative and qualitative insight into the relationships between the grammars at hand. We describe a refined method for grammar convergence, and we use it in a major study, where we recover the relationships between all the grammars that occur in the different versions of the Java Language Specification (JLS). The relationships are represented as grammar transformation chains that capture all accidental or intended differences between the JLS grammars. This method is mechanized and driven by nominal and structural differences between pairs of grammars that are subject to asymmetric, binary convergence steps. We present the underlying operator suite for grammar transformation in detail, and we illustrate the suite with many examples of transformations on the JLS grammars. We also describe the extraction effort, which was needed to make the JLS grammars amenable to automated processing. We include substantial metadata about the convergence process for the JLS so that the effort becomes reproducible and transparent

    State of the art survey of network operating systems development

    Get PDF
    The results of the State-of-the-Art Survey of Network Operating Systems (NOS) performed for Goddard Space Flight Center are presented. NOS functional characteristics are presented in terms of user communication data migration, job migration, network control, and common functional categories. Products (current or future) as well as research and prototyping efforts are summarized. The NOS products which are revelant to the space station and its activities are evaluated

    Generating Programming Environments with Integrated Text and Graphics for VLSI Design Systems

    Get PDF
    The constant improvements in device integration, the development of new technologies and the emergence of new design techniques call for flexible, maintainable and robust software tools. The generic nature of compiler-compiler systems, with their semi-formal specifications, can help in the construction of those tools. This thesis describes the Wright editor generator which is used in the synthesis of language-based graphical editors (LBGEs). An LBGE is a programming environment where the programs being manipulated denote pictures. Editing actions can be specified through both textual and graphical interfaces. Editors generated by the Wright system are specified using the formalism of attribute grammars. The major example editor in this thesis, Stick-Wright, is a design entry system for the construction of VLSI circuits. Stick-Wright is a hierarchical symbolic layout editor which exploits a combination of text and graphics in an interactive environment to provide the circuit designer with a tool for experimenting with circuit topologies. A simpler system, Pict-Wright: a picture drawing system, is also used to illustrate the attribute grammar specification process. This thesis aims to demonstrate the efficacy of formal specification in the generation of software-tools. The generated system Stick-Wright shows that a text/graphic programming environment can form the basis of a powerful VLSI design tool, especially with regard to providing the designer with immediate graphical feedback. Further applications of the LBGE generator approach to system design are given for a range of VLSI design activities

    A Program Visualization System That Supports the Program Understanding Process.

    Get PDF
    The goal of this research is to provide a graphical system that supports the program understanding process by representing the program\u27s control flow, the code and the identifiers local to a specific point within the program. By having more information local to the point of interest, the programmer can maintain continuity in developing program understanding. The programmer can see loops, procedure calls, and other structures with respect to their execution order and can view them in the environment or the context in which they will execute. The Peec system supplies a graphical representation of the program\u27s control flow in which the control structures are represented as tiers. The tiers are arranged in a three-dimensional space representing the program\u27s operational flow. The body of the procedure or function is nested within the reference tier so that the programmer views the routine local to its reference point. Also, a list of live identifiers is displayable for the current tier element. The advantage is that the routine\u27s text and the identifier list are local to the area of study and the programmer does not have to look elsewhere for the program text and the identifier definition. The programmer can maintain a continuity in developing program understanding using information local to the point of interest. The Peec system consists of the Peec compiler which transforms a Pascal program into tier and identifier information, and the Peec environment for modeling the program\u27s operational flow image. The Peec environment provides the programmer many interactive capabilities. These capabilities consist of browsing the flow model, displaying text, displaying identifiers and transforming the three-dimensional flow model into appropriate views. These features are aimed at assisting the programmer in the processing of developing program understanding

    Thinking FORTH: a language and philosophy for solving problems

    Get PDF
    XIV, 313 p. ; 24 cmLibro ElectrónicoThinking Forth is a book about the philosophy of problem solving and programming style, applied to the unique programming language Forth. Published first in 1984, it could be among the timeless classics of computer books, such as Fred Brooks' The Mythical Man-Month and Donald Knuth's The Art of Computer Programming. Many software engineering principles discussed here have been rediscovered in eXtreme Programming, including (re)factoring, modularity, bottom-up and incremental design. Here you'll find all of those and more - such as the value of analysis and design - described in Leo Brodie's down-to-earth, humorous style, with illustrations, code examples, practical real life applications, illustrative cartoons, and interviews with Forth's inventor, Charles H. Moore as well as other Forth thinkers. If you program in Forth, this is a must-read book. If you don't, the fundamental concepts are universal: Thinking Forth is meant for anyone interested in writing software to solve problems. The concepts go beyond Forth, but the simple beauty of Forth throws those concepts into stark relief. So flip open the book, and read all about the philosophy of Forth, analysis, decomposition, problem solving, style and conventions, factoring, handling data, and minimizing control structures. But be prepared: you may not be able to put it down. This book has been scanned, OCR'd, typeset in LaTeX, and brought back to print (and your monitor) by a collaborative effort under a Creative Commons license. http://thinking-forth.sourceforge.net/The Philosophy of Forth An Armchair History of Software Elegance; The Superficiality of Structure; Looking Back, and Forth; Component Programming; Hide From Whom?; Hiding the Construction of Data Structures; But Is It a High-Level Language?; The Language of Design; The Language of Performance; Summary; References Analysis The Nine Phases of the Programming Cycle; The Iterative Approach; The Value of Planning; The Limitations of Planning; The Analysis Phase; Defining the Interfaces; Defining the Rules; Defining the Data Structures; Achieving Simplicity; Budgeting and Scheduling; Reviewing the Conceptual Model; References Preliminary Design/Decomposition Decomposition by Component; Example: A Tiny Editor; Maintaining a Component-based Application; Designing and Maintaining a Traditional Application; The Interface Component; Decomposition by Sequential Complexity; The Limits of Level Thinking; Summary; For Further Thinking; Detailed Design/Problem Solving Problem-Solving Techniques; Interview with a Software Inventor; Detailed Design; Forth Syntax; Algorithms and Data Structures; Calculations vs. Data Structures vs. Logic; Solving a Problem: Computing Roman Numerals; Summary; References; For Further Thinking Implementation: Elements of Forth Style Listing Organization; Screen Layout; Comment Conventions; Vertical Format vs. Horizontal Format; Choosing Names: The Art; Naming Standards: The Science; More Tips for Readability; Summary; References Factoring Factoring Techniques; Factoring Criteria; Compile-Time Factoring; The Iterative Approach in Implementation; References Handling Data: Stacks and States The Stylish Stack; The Stylish Return Stack; The Problem With Variables; Local and Global Variables/Initialization; Saving and Restoring a State; Application Stacks; Sharing Components; The State Table; Vectored Execution; Using DOER/MAKE; Summary; References Minimizing Control Structures What’s So Bad about Control Structures?; How to Eliminate Control Structures; A Note on Tricks; Summary; References; For Further Thinking Forth’s Effect on Thinking Appendix A Overview of Forth (For Newcomers); Appendix B Defining DOER/MAKE; Appendix C Other Utilities Described in This Book; Appendix D Answers to “Further Thinking” Problems; Appendix E Summary of Style Conventions; Inde
    corecore