Today. Generic Language g Technology (2IS15)



Similar documents
Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

UNIQUE Identity Access Management

SOFTWARE TESTING TRAINING COURSES CONTENTS

UNIQUE Business for SaaS

WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation

Static Analyzers. Context. Learning Objectives

How To Write A Report In Xbarl

CSCI 3136 Principles of Programming Languages

2. Advance Certificate Course in Information Technology

Programmers rejoice: QML makes business people understand. Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1

Skills for Employment Investment Project (SEIP)

ON AN APPROACH TO STATEMENT OF SQL QUESTIONS IN THE NATURAL LANGUAGE FOR CYBER2 KNOWLEDGE DEMONSTRATION AND ASSESSMENT SYSTEM

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code

Vragen. Software development model. Software development model. Software development model

Programming Languages

Textual Modeling Languages

How to make the computer understand? Lecture 15: Putting it all together. Example (Output assembly code) Example (input program) Anatomy of a Computer

Programming Languages

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Save thousands with the complete e-document distribution solution

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

What is Automotive Software Engineering? What is Automotive Software Engineering? What is Automotive Software Engineering?

Software Development Kit

<Insert Picture Here> What's New in NetBeans IDE 7.2

Compiler and Language Processing Tools

A Short Introduction to Writing Java Code. Zoltán Majó

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

Description. Benefits. Requirements. Selection process. Duration

1/20/2016 INTRODUCTION

An Organisational Perspective on Collaborative Business Processes

An Automatic Reversible Transformation from Composite to Visitor in Java

creating a text-based editor for eclipse

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Dangers and Benefits of Using a DSL

Lesson 06: Basics of Software Development (W02D2

SAP HANA Core Data Services (CDS) Reference

Language-Driven, Technology-Enhanced Instructional Systems Design

CASE workbenches. . Software tools to support specific process phases. Objectives. Chapter 26. Chapter 26 CASE Workbenches

Static Program Visualization Within The ASF+SDF Meta Environment. Master Software Engineering Qais Ali Supervisor: Prof.dr. P.

Chapter 13: Program Development and Programming Languages

A FRAMEWORK FOR MONITORING PROGRAM EXECUTION

Analysis and Transformation of Source Code by Parsing and Rewriting

XFlash A Web Application Design Framework with Model-Driven Methodology

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

How to Improve Database Connectivity With the Data Tools Platform. John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management)

Component visualization methods for large legacy software in C/C++

Integrating Prose as First-Class Citizens with Models and Code

McGraw-Hill The McGraw-Hill Companies, Inc.,

Run-time Variability Issues in Software Product Lines

YouTrack MPS case study

PG DAC. Syllabus. Content. Eligibility Criteria

Short notes on webpage programming languages

Object-Oriented Software Specification in Programming Language Design and Implementation

SPSS WebApp Framework

Nexawebホワイトペーパー. Developing with Nexaweb ~ Nexaweb to Improve Development Productivity and Maintainability

Mbeddr and Software Documentation

DIPLOMADO DE JAVA - OCA

Take full advantage of IBM s IDEs for end- to- end mobile development

A Database Re-engineering Workbench

SAS Add in to MS Office A Tutorial Angela Hall, Zencos Consulting, Cary, NC

Introduction to programming

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Artificial Intelligence. Class: 3 rd

Modern PL/SQL Code Checking and Dependency Analysis

ICAPRG409A Develop mobile applications

A Visual Language Based System for the Efficient Management of the Software Development Process.

The Projman Application: Allowing SAS to Manage Your Project Jon Patton, Miami University, Oxford, Ohio

Tutorial 5: Developing Java applications

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

Cedalion A Language Oriented Programming Language (Extended Abstract)

Scoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)

Report of the case study in Sistemi Distribuiti A simple Java RMI application

CSE 308. Coding Conventions. Reference

Refactoring (in) Eclipse

DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES

PULP Scription: A DSL for Mobile HTML5 Game Applications

Keys 2 Work / PA ementoring / PA Career Guides / My Career Journey / Financial Literacy 101

Jos Warmer, Independent

GUI and Web Programming

Unit Testing for Domain-Specific Languages

ORACLE APPLICATION EXPRESS 5.0

TSM ASSESSMENT PROTOCOL

Data Sheet VISUAL COBOL WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials

Semantic Web Services for e-learning: Engineering and Technology Domain

Commercial Database Software Development- A review.

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform

SAP Technical Brief SAP NetWeaver. Increase IT Productivity with ABAP Development Tools for SAP NetWeaver

An Approach for the Systematic Development of Domain-Specific Languages

CATALOG OF CLASSES IT and Technical Courses

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

T14 RUMatricula Phase II. Section 1 Metaphor and requirements

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Safety & Environmental Assurance Centre

Jiří Šebek, Karel Richta. Department of Computer Science and Engineering Praha 2, Czech Republic

Application Development With Data Studio

Transcription:

Today Generic Lanuae Technoloy (2IS15) Domain Specific Lanuae Desin Prof.dr. Mark van den Brand Tools for software analysis and manipulation Prorammin lanuae independent (parametric) The story is from the IDE/PE perspective First a eneral overview, then introduction to specific technoloies / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 1 What What... is a lanuae?... is a Prorammin Environment (PE)?... is Generic Lanuae Technoloy (GLT)?... is a Proram?... is a Prorammin Environment?... is a lanuae?... is a Prorammin Environment (PE)?... is Generic Lanuae Technoloy (GLT)?... is a Proram?... is a Prorammin Environment? / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 2 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 3

What is a lanuae? Aspects of a Lanuae A prorammin lanuae Assembler, Cobol, PL/I, C, C++, Java, C#,... AD Domain-Specific ifi Lanuae (DSL) SQL for queries BibTex for entries in a biblioraphy Euris for railroad emplacement safety Risla for financial products WebDSL for web paes Syntax Textual/raphical form of declarations, statements, etc. Static Semantics Scope and type of variables, conversions, formal/actual parameters, etc. Queries: who calls who, who uses variable X,... Dynamic Semantics Proram execution Toolin / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 4 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 5 What What is a Prorammin Environment... is a lanuae?... is a Prorammin Environment (PE)?... is Generic Lanuae Technoloy (GLT)?... is a Proram?... is a Prorammin Environment? A system that supports the development of prorams in order to: Increase productivity: Uniform user-interface (UI); interated tools Increased interaction; early error detection Increase quality: Interated version manaement Interated testin Interated documentation / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 6 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 7

Classical PE Interated PE (IPE) Command line oriented: Text editor only xemacs or vim cc or javac Prorams stored in files Complete recompilation after each chane Late error detection Debuin requires recompilation with different options Interated Development Environment (IDE) Specialized, syntax-directed, editor for each lanuae Common intermediate representation for all tools Incremental processin (reusin results of previous calculations) One GUI Early error detection Syntax errors Undeclared variables Type errors in expressions / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 8 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 9 Functionality of an IDE Examples of IDEs Syntax-directed editin/hihlihtin, pretty printin Typecheckin Restructurin Versionin Executin, debuin, profilin Testin Documentin Eclipse: www.eclipse.or Interated Development Environment (IDE) for Java Plu-in mechanism for extensions MS Visual Studio: msdn.microsoft.com/vstudio t di IDE for various lanuaes VB, C, C++, C# / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 10 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 11

What What is Generic Lanuae Technoloy?... is a lanuae?... is a Prorammin Environment (PE)?... is Generic Lanuae Technoloy (GLT)?... is a Proram?... is a Prorammin Environment? Goal: Enable the easy creation of lanuae-specific tools and prorammin environments Separate lanuae-specific aspects from eneric aspects Approach: Find ood, reusable, e, solutions o s for eneric e aspects Find ways to define lanuae-specific aspects Find ways to enerate tools from lanuae-specific definitions iti / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 12 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 13 Generic Aspects Definin Lanuae Aspects User-interface Text editor Proram storae Documentation Syntax Lexical and context-free rammar Static semantics Ad hoc? Dynamic semantics Ad hoc? / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 14 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 15

From Definition to Tool Examples of Generic IDEs Syntax Scanner and parser eneration Static semantics??? Dynamic semantics??? Eclipse IMP: http://eclipse-imp.sourcefore.net/imp.html A framework for Generic Interated Development Environments (IDE) The oal of the Eclipse IMP is to provide an extensible platform for the development of hih-quality, fully-featured, lanuae-specific IDE's in Eclipse Spoofax/IMP: http://strateoxt.or/spoofaxor/spoofax Rascal: http://www.rascal-mpl.or/ / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 16 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 17 What What is Proram?... is a lanuae?... is a Prorammin Environment (PE)?... is Generic Lanuae Technoloy (GLT)?... is a Proram?... is a Prorammin Environment? Definition of problem P Generated proram that solves P / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 18 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 19

Examples of Proram s (1) Examples of Proram s (2) Reular expression matchin: Problem: reconize reular expressions R 1,..., R n in a text Generates: finite automaton Web sites Problem: create uniform web site for set of HTML paes Generate: HTML code with standard layout and site map Generate biblioraphic entries; input @article{bjko00, author = {Brand, {M.G.J. van den} and Jon, {H.A. de} and P. Klint and P. Olivier}, title = {{E}fficient {A}nnotated {T}erms}, journal = {Software, Practice \& Experience}, year = {2000}, paes = {259--291}, volume = {30}} enerates: M.G.J. van den Brand, H.A. de Jon, P. Klint and P.A. Olivier, Efficient Annotated Terms, Software, Practice & Experience, 30(3):259 291, 2000 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 20 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 21 Examples of Proram Genators (3) Proram s (summary) Compiler: Input: Java proram Generates: JVM code C preprocessor: Input C proram with #include, #define directives Generates C proram with directives replaced Problem description is specific and is usually written in a Domain-Specific Lanuae (DSL) contains eneric alorithms and information about application domain. A PG isolates a problem description from its implementation easier to switch to other implementation methods. Improvements/optimizations in the enerator are ood for all enerated prorams. / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 22 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 23

What... is a lanuae?... is a Prorammin Environment (PE)?... is Generic Lanuae Technoloy (GLT)?... is a Proram?... is a Prorammin Environment? What is Prorammin Environment (PEG)? A PEG is a proram enerator applied in the domain of prorammin environments Input: description of a desired lanuae L Output: (parts of) a dedicated L environment Advantaes: Uniform interface across different lanuaes contains eneric, re-usable, implementation knowlede Disadvantae: some UI optimizations are hard / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 24 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 25 Prorammin Environment PEG = collection of proram enerators Formal definition of lanuae L Definition of L syntax Definition of L static semantics Definition of L dynamic semantics Parser Typechecker Evaluator Dedicated environment for editin, manipulatin and executin L prorams L-parser L-typechecker L-evaluator Interated L-prorammin p environment / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 26 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 27

Prorammin Environment Summary PEG allows definition of (small) (domain specific) lanuaes PEG = lanuae workbench Evolution from traditional PE via IDE to lanuae workbenches How to describe the syntax and semantics of a (small) (domain specific) lanuae Questions so far? / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 28 / Faculteit Wiskunde en Informatica 7-9-2011 PAGE 29