RAPID Resource API Design Language

Size: px
Start display at page:

Download "RAPID Resource API Design Language"

Transcription

1 RAPID Resource API Design Language Pushing the limits of language usability with XText TED EPSTEIN, FOUNDER AND CEO TANYA FESENKO, LEAD DEVELOPER EclipseCon NA 2015, Xtext Day COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 1

2 Overview RepreZen: solving API interoperability Challenge: a better API description language RAPID Language Features Optional Fluency: accommodating coding styles Keyword Sequence: encourage, don t Enforce Indent-Based Block Scoping: life without curly braces Implementation Overview Summary Q&A COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 2

3 The Elevator Pitch / Unify Data Models / Federate APIs / Integrate Faster COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 3

4 The Elevator Pitch Make Canonical Data Models Practical Frequently recommended, hard to implement Current reality: much easier to build from scratch than to reuse existing data models We want to change that! Enable Highly Interoperable APIs Significantly Lower Long- Term Integration Cost COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 4

5 The Elevator Pitch Make Canonical Data Models Practical Frequently recommended, hard to implement Current reality: much easier to build from scratch than to reuse existing data models We want to change that! Enable Highly Interoperable APIs Reusable data models: business-oriented, technology-independent, semantically rich Allow variability through realization Message payloads still conform to canonical model Property Subsets Significantly Lower Perspective Long- Term Integration Cost Metadata <party datasource= MSDB > <partyid>123</partyid> <partyname xsi:nil= true nullvalue= Not Available /> <accounts> <account datasource= A2 transtype= insert > <accountid>xyz</accountid> <balance xsi:nil= true isrestricted= true /> </account> </accounts> </party> Contextual Constraints COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 5

6 Make Canonical Data Models Practical Frequently recommended, hard to implement Current reality: much easier to build from scratch than to reuse existing data models We want to change that! Enable Highly Interoperable APIs Reusable data models: business-oriented, technologyindependent, semantically rich Allow variability through realization Message payloads still conform to canonical model Significantly Lower Long- Term Integration Cost Service APIs speak the same language Clients can work with multiple APIs, without multiple DTOs, SDKs, etc. Stop runaway spending on remedial integration technology COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 6

7 Changing the way we build APIs Realization This needs to be built into the API modeling language. Representation Business Domain Model Subset Perspective Constraints Metadata Resource Data Model Media Type Format Conventions Hyperlinks Message Schema COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 7

8 Yet Another API Description Language? YAADL? YAAPIDL? There are at least four of these... The nice thing about standards is that you have so many to chose from. - Andrew Tanenbaum If we have to build an API modeling language, it has to be good. and they re pretty good. Web-based editors API Documentation with integrated sandbox Syntax based on YAML or Markdown Interesting language-level reuse REST patterns built in any ideas? COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 8

9 Make it accessible, readable, versatile. Who s going to model these APIs? What she said. Business Analysts Data Professionals Developers! Developers! Developers! and Subject Matter Experts Enterprise Architects COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 9

10 Demo RAPID Usability Features Indent Syntax: Python-like block syntax, no curly braces Advanced highlighting to visualize structure Order Assist: Flexible sequence for declarations Reset to standard sequence using QuickFix or auto-format Optional Fluency Support terse and fluent syntax with optional keywords Semantic highlighting to distinguish optional vs. required keywords COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 10

11 Indent-Based Syntax New Syntax indents define block scope Structural Highlighting - editbox.sourceforge.net Previous Syntax braces for block scoping 11

12 Order Assist 12

13 Optional Fluency Fluent Terse 13

14 Implementation Walkthrough COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 14

15 Work with Xtext Xtext Grammar (*.xtext file) 15

16 Work with Xtext Xtext Grammar (*.xtext file) Generated code (Parser and UI) 16

17 Work with Xtext The rest (customized from generated code) Lexer Formatter Content assist Code Templates Prefs Crossreference Scope Code highlighter Validation/ Quickfix Outline Xtext Grammar (*.xtext file) Generated code (Parser and UI) 17

18 Three features for (each feature): Description Grammar Code Customization 18

19 Feature 1: Automate canonical ordering 19

20 Order Assist methods 20

21 Implementation: Grammar The rest (customized from generated code) Xtext Grammar (*.xtext file) Generated code 21

22 Allow arbitrary order in grammar 22

23 Allow arbitrary order in grammar 23

24 Allow arbitrary order in grammar Disable code-assist and add validator for duplicate singlevalued properties to prevent overriding 24

25 Sort List< INode> Sorting rule: Sequence<GrammarElement> Grammar Tree Compare INodes: Using sorting rules Preserving: List delimiters Whitespaces Attached symbols (*, +) Order of elements of the same kind 25

26 Implementation: Grammar The rest (customized from generated code) Validation Xtext Grammar (*.xtext file) Generated code 26

27 Validation MyJavaValidator # checkmyelement(semanticelement) 27

28 MyJavaValidator # checkmyelement(semanticelement) Validation Semantic Element Syntax Tree Node getincorrectly OrderedChildren() Incorrectly ordered Nodes NodeModelUtils::getNode() 28

29 Implementation: Grammar The rest (customized from generated code) Formatter Xtext Grammar (*.xtext file) Generated code 29

30 Formatter DefaultNodeModelFormatter#format(): 30

31 Formatter DefaultNodeModelFormatter#format(): 31

32 Formatter DefaultNodeModelFormatter#format(): INode: offset text length grammarelement semanticelement 32

33 Formatter DefaultNodeModelFormatter#format(): Writes tokens to character stream and then flushes it The write methods create formatted LineEntries with use of formatter configuration (ElementLocators) 33

34 Formatter DefaultNodeModelFormatter#format(): TextRegion offset and length in the char stream populated in the write methods 34

35 Formatter DefaultNodeModelFormatter#format(): Place for customization 35

36 Implementation: Grammar The rest (customized from generated code) Preferences page Xtext Grammar (*.xtext file) Generated code 36

37 Usability: Preferences 37

38 Testing !=120 How many permutations for five elements? 5 38

39 Testing Xtend Active Annotations 120 green tests! 39

40 Changes: Automate Canonical Ordering The rest (customized from generated code) Enable arbitrary order Validation Formatter Preferences page Xtext Grammar (*.xtext file) Generated code 40

41 Changes: Automate Canonical Ordering Errors for single-value property override Warnings for "incorrect" order The rest (customized from generated code) Validation Formatter Preferences page Xtext Grammar (*.xtext file) Generated code 41

42 Changes: Automate Canonical Ordering The rest Restore (customized from canonical generated order code) Validation Formatter Preferences page Xtext Grammar (*.xtext file) Generated code 42

43 Changes: Automate Canonical Ordering The rest (customized from generated code) enable/disable validation, reordering in formatter Validation Formatter Preferences page Xtext Grammar (*.xtext file) Generated code 43

44 Feature 2: Optional fluency 44

45 What is Optional Fluency? Fluent Terse 45

46 Implementation: Grammar The rest (customized from generated code) Xtext Grammar (*.xtext file) Generated code 46

47 Implementation 47

48 Implementation 48

49 Changes: Optional Fluency The rest (customized from generated code) Optional fluency Xtext Grammar (*.xtext file) Generated code 49

50 Feature 3: Indent-based block scoping in Xtext 50

51 Indent-based block scoping in Xtext With curly braces Python-like notation 51

52 Indent-based block scoping in Xtext Highlighting of boxeseditbox.sourceforge.net 52

53 Implementation: Grammar The rest (customized from generated code) Xtext Grammar (*.xtext file) Generated code 53

54 Grammar NL - newline WS whitespace BEGIN indent END - outdent 54

55 Grammar NL: not hidden NL - newline WS whitespace BEGIN indent END - outdent 55

56 Grammar NL: not hidden NL - newline WS whitespace BEGIN indent END - outdent 56

57 Implementation: Grammar The rest (customized from generated code) Lexer Xtext Grammar (*.xtext file) Generated code 57

58 Custom Lexer Generated / Xtext code Custom code Indent-based Syntax in Xtext - tinyurl.com/pgcowct Insert BEGIN and END token 58

59 Content assist 59

60 Implementation: Grammar The rest (customized from generated code) Content Assist Xtext Grammar (*.xtext file) Generated code 60

61 Custom Lexers Plural now Generated / Xtext code Custom code Content-assist needs its own lexer 61

62 Custom Lexers Generated / Xtext code Custom code 62

63 Content Assist Also see Enhancing Content Assist from XtextCON tinyurl.com/onou2hu 63

64 Content Assist Also see Enhancing Content Assist from XtextCON tinyurl.com/onou2hu 64

65 Content Assist Also see Enhancing Content Assist from XtextCON tinyurl.com/onou2hu 65

66 Content Assist Place for customization 66

67 Content-Assist Context Factory Initialize data Analyze data to create content assist contexts Content Assist Contexts 67

68 Content-Assist Context Factory Syntax tree nodes lastcompletenode, lastvisiblenode, currentnode, datatypenode Semantic model - current model Initialize data Analyze data to create content assist contexts Content Assist Contexts 68

69 Content-Assist Context Factory Start a new token, complete current one, collect available alternatives, etc Initialize data Analyze data to create content assist contexts Content Assist Contexts 69

70 Content-Assist Context Factory Customize to respect indents Initialize data Analyze data to create content assist contexts Content Assist Contexts 70

71 Implementation: Grammar The rest (customized from generated code) Formatter Xtext Grammar (*.xtext file) Generated code 71

72 Formatter Assign correct value to FormattingConfigBasedStream #indentationlevel No line wraps should be introduced by formatter line wraps change structure of Python-like models No spaces around invisible rules synthetic (BEGIN and END) and NL (newline) 72

73 Changes: Indent-based Syntax The rest (customized from generated code) Add BEGIN and END terminal rules Lexer Content Assist Formatter Xtext Grammar (*.xtext file) Generated code 73

74 Changes: Indent-based Syntax Synthesize BEGIN and END tokens The rest (customized from generated code) Lexer Content Assist Formatter Xtext Grammar (*.xtext file) Generated code 74

75 Changes: Indent-based Syntax The Show rest proposals (customized from according generated to code) indent level Lexer Content Assist Formatter Xtext Grammar (*.xtext file) Generated code 75

76 Changes: Indent-based Syntax The rest (customized from generated code) Preserve NLs and indents Lexer Content Assist Formatter Xtext Grammar (*.xtext file) Generated code 76

77 Summary Still an ongoing experiment Early feedback from users has been very positive. We welcome your feedback! API Studio is a commercial product, still pre-launch Offering a free license with 1-year maintenance to Conference attendees (1 per organization) Register at get.reprezen.com with invitation code eclipsecon2015 Contacts: ted.epstein@reprezen.com tatiana.fesenko@reprezen.com COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 77

78 Questions THANK YOU! COPYRIGHT 2015, MODELSOLV, INC. ALL RIGHTS RESERVED. 78

Implementation of F# language support in JetBrains Rider IDE

Implementation of F# language support in JetBrains Rider IDE SAINT-PETERSBURG STATE UNIVERSITY Software Engineering Evgeniy Auduchinok Implementation of F# language support in JetBrains Rider IDE Graduation Thesis Scientific supervisor: Senior lecturer Iakov Kirilenko

More information

3. NetBeans IDE 6.0. Java. Fall 2009 Instructor: Dr. Masoud Yaghini

3. NetBeans IDE 6.0. Java. Fall 2009 Instructor: Dr. Masoud Yaghini 3. NetBeans IDE 6.0 Java Fall 2009 Instructor: Dr. Masoud Yaghini Outline Installing the NetBeans IDE First NetBeans IDE Project IDE Windows Source Editor Customizing the IDE References Installing the

More information

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today: Java expressions and operators concluded Java Statements: Conditionals: if/then, if/then/else Loops: while, for Next

More information

Introduc)on. Tristan Naumann. Sahar Hasan. Steve Hehl. Brian Lu

Introduc)on. Tristan Naumann. Sahar Hasan. Steve Hehl. Brian Lu Introduc)on Tristan Naumann Sahar Hasan Steve Hehl Brian Lu Introduc)on Friendly Interac)ve Recursion Educator (FIRE) Recursion is one of the most difficult topics for novice programmers to understand

More information

Parser Design. Neil Mitchell. June 25, 2004

Parser Design. Neil Mitchell. June 25, 2004 Parser Design Neil Mitchell June 25, 2004 1 Introduction A parser is a tool used to split a text stream, typically in some human readable form, into a representation suitable for understanding by a computer.

More information

Barista Enabling Innovation in Code Editors

Barista Enabling Innovation in Code Editors Barista Enabling Innovation in Code Editors Andrew J. Ko Brad A. Myers (19:30) This is work that I ve done with my advisor, Brad Myers. Programming Environments Visual Studio 2003 Alice 2 Eclipse 3.0 18

More information

SharePoint Management

SharePoint  Management SharePoint Email Management Use these feature checklists to guide and structure your evaluation of available products for SharePoint-based email management. They show the features that are available in

More information

CS664 Compiler Theory and Design LIU 1 of 16 ANTLR. Christopher League* 17 February Figure 1: ANTLR plugin installer

CS664 Compiler Theory and Design LIU 1 of 16 ANTLR. Christopher League* 17 February Figure 1: ANTLR plugin installer CS664 Compiler Theory and Design LIU 1 of 16 ANTLR Christopher League* 17 February 2016 ANTLR is a parser generator. There are other similar tools, such as yacc, flex, bison, etc. We ll be using ANTLR

More information

GRAPHIC WEB DESIGNER PROGRAM

GRAPHIC WEB DESIGNER PROGRAM NH128 HTML Level 1 24 Total Hours COURSE TITLE: HTML Level 1 COURSE OVERVIEW: This course introduces web designers to the nuts and bolts of HTML (HyperText Markup Language), the programming language used

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

SharePoint Management

SharePoint  Management SharePoint Email Management Use these feature checklists to guide and structure your evaluation of available products for SharePoint-based email management. They show the features that are available in

More information

AN OVERVIEW OF C. CSE 130: Introduction to Programming in C Stony Brook University

AN OVERVIEW OF C. CSE 130: Introduction to Programming in C Stony Brook University AN OVERVIEW OF C CSE 130: Introduction to Programming in C Stony Brook University WHY C? C is a programming lingua franca Millions of lines of C code exist Many other languages use C-like syntax C is portable

More information

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons Domain-Specific Languages Martin Fowler With Rebecca Parsons AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Sydney Tokyo Singapore

More information

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University ITC213: STRUCTURED PROGRAMMING Bhaskar Shrestha National College of Computer Studies Tribhuvan University Lecture 03: Program Development Life Cycle Readings: Not Covered in Textbook Program Development

More information

Eclipse Support for Using Eli and Teaching Programming Languages

Eclipse Support for Using Eli and Teaching Programming Languages Electronic Notes in Theoretical Computer Science 141 (2005) 189 194 www.elsevier.com/locate/entcs Eclipse Support for Using Eli and Teaching Programming Languages Anthony M. Sloane 1,2 Department of Computing

More information

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger Reuses some material from: Andrzej Wasowski, Model-Driven Development, ITU Copenhagen Where I am from WASP 2017

More information

Code Editor. The Code Editor is made up of the following areas: Toolbar. Editable Area Output Panel Status Bar Outline. Toolbar

Code Editor. The Code Editor is made up of the following areas: Toolbar. Editable Area Output Panel Status Bar Outline. Toolbar Code Editor Wakanda s Code Editor is a powerful editor where you can write your JavaScript code for events and functions in datastore classes, attributes, Pages, widgets, and much more. Besides JavaScript,

More information

Domain-Specific Languages Language Workbenches

Domain-Specific Languages Language Workbenches Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang

More information

ReqView Business Needs

ReqView Business Needs ReqView Business Needs ID Description As a(n) I Want So that Acceptance Criteria 45 45_1_reqview_icon.png (ReqView User_Stories_Example_files/45_1_reqview_icon.png) 1 Introduction 2 46 49 1.1 Purpose This

More information

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial. A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far XML Tutorial Yanan Zhang Department of Electrical and Computer Engineering University of Calgary

More information

SharePoint Document Management

SharePoint Document Management SharePoint Document Management Use these feature checklists to guide and structure your evaluation of available products for SharePoint document management and email management. They show the features

More information

CS 177 Recitation. Week 1 Intro to Java

CS 177 Recitation. Week 1 Intro to Java CS 177 Recitation Week 1 Intro to Java Questions? Computers Computers can do really complex stuff. How? By manipulating data according to lists of instructions. Fundamentally, this is all that a computer

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

Python I. Some material adapted from Upenn cmpe391 slides and other sources

Python I. Some material adapted from Upenn cmpe391 slides and other sources Python I Some material adapted from Upenn cmpe391 slides and other sources Overview Names & Assignment Data types Sequences types: Lists, Tuples, and Strings Mutability Understanding Reference Semantics

More information

Introduction to Lexical Analysis

Introduction to Lexical Analysis Introduction to Lexical Analysis Outline Informal sketch of lexical analysis Identifies tokens in input string Issues in lexical analysis Lookahead Ambiguities Specifying lexers Regular expressions Examples

More information

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs EclipseCon Europe 2016 2016-10-26 Roman Mitin Avaloq Evolution AG Allmendstrasse 140 8027 Zurich Switzerland T +41 58 316

More information

Discover, Relate, Model, and Integrate Data Assets with Rational Data Architect

Discover, Relate, Model, and Integrate Data Assets with Rational Data Architect Discover, Relate, Model, and Integrate Data Assets with Rational Data Architect Niels C. Jacobsen (nielsj@dk.ibm.com) Associate IT Architect, IBM Software Group Rational IBM Software Group 2005 IBM Corporation

More information

Developing a RESTful Mixed Reality Web Service Platform

Developing a RESTful Mixed Reality Web Service Platform Developing a RESTful Mixed Reality Web Service Platform WS-REST 2010 @ WWW 2010, Raleigh, NC April 26 th 2010 Petri Selonen Principal Researcher (PhD), Tampere-FI petri.selonen@nokia.com 1 Background:

More information

Semantic Analysis. Lecture 9. February 7, 2018

Semantic Analysis. Lecture 9. February 7, 2018 Semantic Analysis Lecture 9 February 7, 2018 Midterm 1 Compiler Stages 12 / 14 COOL Programming 10 / 12 Regular Languages 26 / 30 Context-free Languages 17 / 21 Parsing 20 / 23 Extra Credit 4 / 6 Average

More information

Archer Configuration Best Practices

Archer Configuration Best Practices Archer Configuration Best Practices RSA Archer Professional Services November 2016 Overview This document contains best practice suggestions to consider when setting up the infrastructure for your Archer

More information

Client Configuration Cookbook

Client Configuration Cookbook Sitecore CMS 6.4 or later Client Configuration Cookbook Rev: 2013-10-01 Sitecore CMS 6.4 or later Client Configuration Cookbook Features, Tips and Techniques for CMS Architects and Developers Table of

More information

Chapter 2 Basic Elements of C++

Chapter 2 Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2-1 Chapter 2 Basic Elements of C++ At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion

More information

Client Configuration Cookbook

Client Configuration Cookbook Sitecore CMS 6.2 Client Configuration Cookbook Rev: 2009-10-20 Sitecore CMS 6.2 Client Configuration Cookbook Features, Tips and Techniques for CMS Architects and Developers Table of Contents Chapter 1

More information

Compiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors

Compiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors Compiler Design Subject Code: 6CS63/06IS662 Part A UNIT 1 Chapter 1 1. Introduction 1.1 Language Processors A compiler is a program that can read a program in one language (source language) and translate

More information

Compilers and Code Optimization EDOARDO FUSELLA

Compilers and Code Optimization EDOARDO FUSELLA Compilers and Code Optimization EDOARDO FUSELLA The course covers Compiler architecture Pre-requisite Front-end Strong programming background in C, C++ Back-end LLVM Code optimization A case study: nu+

More information

Spell Checker for EiffelStudio

Spell Checker for EiffelStudio Spell Checker for EiffelStudio Software Engineering Laboratory: Open-Source EiffelStudio Semester project by Benjamin Fischer Student number: 10-916-971 Supervised by Julian Tschannen ETH Computer Science

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

Web Standards Mastering HTML5, CSS3, and XML

Web Standards Mastering HTML5, CSS3, and XML Web Standards Mastering HTML5, CSS3, and XML Leslie F. Sikos, Ph.D. orders-ny@springer-sbm.com www.springeronline.com rights@apress.com www.apress.com www.apress.com/bulk-sales www.apress.com Contents

More information

Eclipse technology in IFMS Interface Management System

Eclipse technology in IFMS Interface Management System Eclipse Finance Day 2013 Eclipse technology in IFMS Interface Management System Marc Schlienger A story today about Eclipse and IFMS SOA at Credit Suisse The construction of a System MDD in the large Leveraging

More information

Sparqube Lookup Column

Sparqube Lookup Column Sparqube Lookup Column Contents Overview... 2 Features... 3 Setup... 4 Requirements... 4 Installation... 4 Licensing... 4 Configuration... 9 Lookup column types... 9 Adding Sparqube Lookup Classic to SharePoint

More information

exlepse Eclipse XLE Plugin

exlepse Eclipse XLE Plugin exlepse Eclipse XLE Plugin Motivation During the course Grammar Development, held at the University of Konstanz in the Summer Term 2010, we were confronted with XLE and its development environment, the

More information

CS 152: Data Structures with Java Hello World with the IntelliJ IDE

CS 152: Data Structures with Java Hello World with the IntelliJ IDE CS 152: Data Structures with Java Hello World with the IntelliJ IDE Instructor: Joel Castellanos e-mail: joel.unm.edu Web: http://cs.unm.edu/~joel/ Office: Electrical and Computer Engineering building

More information

Working with JavaScript

Working with JavaScript Working with JavaScript Creating a Programmable Web Page for North Pole Novelties 1 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page 2 Objectives

More information

Using Eclipse Europa - A Tutorial

Using Eclipse Europa - A Tutorial Abstract Lars Vogel Version 0.7 Copyright 2007 Lars Vogel 26.10.2007 Eclipse is a powerful, extensible IDE for building general purpose applications. One of the main applications

More information

DITA for Enterprise Business Documents Sub-committee Proposal Background Why an Enterprise Business Documents Sub committee

DITA for Enterprise Business Documents Sub-committee Proposal Background Why an Enterprise Business Documents Sub committee DITA for Enterprise Business Documents Sub-committee Proposal Background Why an Enterprise Business Documents Sub committee Documents initiate and record business change. It is easy to map some business

More information

CA ERwin Data Modeler

CA ERwin Data Modeler CA ERwin Data Modeler Implementation Guide Service Pack 9.5.2 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to only and is subject

More information

Chapter 3. HDL Editor. Introduction. Figure 3-1. HDL Editor Welcome Screen. Introduction 3-1

Chapter 3. HDL Editor. Introduction. Figure 3-1. HDL Editor Welcome Screen. Introduction 3-1 Introduction 3-1 Chapter 3 HDL Editor Introduction The HDL editor is used for entering and editing designs expressed by ABEL and VHDL programs statements. The HDL editor is invoked by clicking on the HDL

More information

Break Through Your Software Development Challenges with Microsoft Visual Studio 2008

Break Through Your Software Development Challenges with Microsoft Visual Studio 2008 Break Through Your Software Development Challenges with Microsoft Visual Studio 2008 White Paper November 2007 For the latest information, please see www.microsoft.com/vstudio This is a preliminary document

More information

MEAP Edition Manning Early Access Program Get Programming with Java Version 1

MEAP Edition Manning Early Access Program Get Programming with Java Version 1 MEAP Edition Manning Early Access Program Get Programming with Java Version 1 Copyright 2018 Manning Publications For more information on this and other Manning titles go to www.manning.com welcome First,

More information

Best Practices for Outcome Chains Builders & Players

Best Practices for Outcome Chains Builders & Players Best Practices for Outcome Chains Builders & Players Outcome Chains 17065 Camino San Bernardo Suite 100 San Diego, CA, 92127 1 Table of Content Table of Contents TABLE OF CONTENT 1 1. OVERVIEW 3 2. GOALS

More information

IPCoreL. Phillip Duane Douglas, Jr. 11/3/2010

IPCoreL. Phillip Duane Douglas, Jr. 11/3/2010 IPCoreL Programming Language Reference Manual Phillip Duane Douglas, Jr. 11/3/2010 The IPCoreL Programming Language Reference Manual provides concise information about the grammar, syntax, semantics, and

More information

New and Noteworthy. Peter Friese Bernd Kolb

New and Noteworthy. Peter Friese  Bernd Kolb New and Noteworthy Peter Friese peter.friese@gentleware.com http://www.gentleware.com Bernd Kolb b.kolb@kolbware.de http://www.kolbware.de What is openarchitectureware? oaw Languages New: AOP Mechanisms

More information

MarkLogic Server. Query Console User Guide. MarkLogic 9 May, Copyright 2018 MarkLogic Corporation. All rights reserved.

MarkLogic Server. Query Console User Guide. MarkLogic 9 May, Copyright 2018 MarkLogic Corporation. All rights reserved. Query Console User Guide 1 MarkLogic 9 May, 2017 Last Revised: 9.0-7, September 2018 Copyright 2018 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Query Console User Guide

More information

08/10/2018. Istanbul Now Platform User Interface

08/10/2018. Istanbul Now Platform User Interface 08/10/2018 Contents Contents...5 UI16... 9 Comparison of UI16 and UI15 styles... 11 Activate UI16... 15 Switch between UI16 and UI15...15 UI16 application navigator... 16 System settings for the user

More information

SPSS Statistics 21.0 GA Fix List. Release notes. Abstract

SPSS Statistics 21.0 GA Fix List. Release notes. Abstract SPSS Statistics 21.0 GA Fix List Release notes Abstract A comprehensive list of defect corrections for SPSS Statistics 21 GA. Details of the fixes are listed below. If you have questions about a particular

More information

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS Borland Together FREQUENTLY ASKED QUESTIONS GENERAL QUESTIONS What is Borland Together? Borland Together is a visual modeling platform that enables software teams to consistently deliver on-time, high

More information

UEE1302 (1102) F10: Introduction to Computers and Programming

UEE1302 (1102) F10: Introduction to Computers and Programming Computational Intelligence on Automation Lab @ NCTU Learning Objectives UEE1302 (1102) F10: Introduction to Computers and Programming Programming Lecture 00 Programming by Example Introduction to C++ Origins,

More information

FUNCTIONAL BEST PRACTICES ORACLE USER PRODUCTIVITY KIT

FUNCTIONAL BEST PRACTICES ORACLE USER PRODUCTIVITY KIT FUNCTIONAL BEST PRACTICES ORACLE USER PRODUCTIVITY KIT Purpose Oracle s User Productivity Kit (UPK) provides functionality that enables content authors, subject matter experts, and other project members

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

TRAINING GUIDE. ArcGIS Online and Lucity

TRAINING GUIDE. ArcGIS Online and Lucity TRAINING GUIDE ArcGIS Online and Lucity ArcGIS Online and Lucity This covers some basic functionality we feel you will need to be successful with Lucity with ArcGIS Online or Portal for ArcGIS Enterprise.

More information

Parser Tools: lex and yacc-style Parsing

Parser Tools: lex and yacc-style Parsing Parser Tools: lex and yacc-style Parsing Version 6.11.0.6 Scott Owens January 6, 2018 This documentation assumes familiarity with lex and yacc style lexer and parser generators. 1 Contents 1 Lexers 3 1.1

More information

How HP is implementing an Omnichannel support experience

How HP is implementing an Omnichannel support experience How HP is implementing an Omnichannel support experience Fulvio Marfoni HP What Omni-Channel Customer Support Experience means Omni-channel is a multichannel approach that seeks to provide the customer

More information

Improve SSIS Delivery with a Patterns-Based Approach. Meagan Longoria July 19, 2017

Improve SSIS Delivery with a Patterns-Based Approach. Meagan Longoria July 19, 2017 Improve SSIS Delivery with a Patterns-Based Approach Meagan Longoria July 19, 2017 What If I Told You 90% of your data integration development in SQL Server could be automated? In 5 years, you will be

More information

VERINT EFM 8.0 Release Overview

VERINT EFM 8.0 Release Overview VERINT EFM 8.0 Release Overview In January of 2015 Verint will release version 8.0 of the Enterprise Feedback Management (EFM) solution. Verint hosted SaaS customers will receive this update as part of

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

Syntax Analysis. Chapter 4

Syntax Analysis. Chapter 4 Syntax Analysis Chapter 4 Check (Important) http://www.engineersgarage.com/contributio n/difference-between-compiler-andinterpreter Introduction covers the major parsing methods that are typically used

More information

Table of Contents What is Test Automation Framework?... 3 Different types of Frameworks used in QTP... 4 Linear Framework in QTP...

Table of Contents What is Test Automation Framework?... 3 Different types of Frameworks used in QTP... 4 Linear Framework in QTP... Table of Contents 1. What is Test Automation Framework?... 3 2. Different types of Frameworks used in QTP... 4 3. Linear Framework in QTP... 4 3.1 Components and Workflow of Linear Framework... 5 3.2 Advantages

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2017/2018 Joerg Doerr Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

What's New in Sitecore CMS 6.4

What's New in Sitecore CMS 6.4 Sitecore CMS 6.4 What's New in Sitecore CMS 6.4 Rev: 2010-12-02 Sitecore CMS 6.4 What's New in Sitecore CMS 6.4 This document describes the new features and changes introduced in Sitecore CMS 6.4 Table

More information

Syntax and Grammars 1 / 21

Syntax and Grammars 1 / 21 Syntax and Grammars 1 / 21 Outline What is a language? Abstract syntax and grammars Abstract syntax vs. concrete syntax Encoding grammars as Haskell data types What is a language? 2 / 21 What is a language?

More information

Creating a new CDC policy using the Database Administration Console

Creating a new CDC policy using the Database Administration Console Creating a new CDC policy using the Database Administration Console When you start Progress Developer Studio for OpenEdge for the first time, you need to specify a workspace location. A workspace is a

More information

Background. Problem Statement. Toward Large Scale Integration: Building a MetaQuerier over Databases on the Web. Deep (hidden) Web

Background. Problem Statement. Toward Large Scale Integration: Building a MetaQuerier over Databases on the Web. Deep (hidden) Web Toward Large Scale Integration: Building a MetaQuerier over Databases on the Web K. C.-C. Chang, B. He, and Z. Zhang Presented by: M. Hossein Sheikh Attar 1 Background Deep (hidden) Web Searchable online

More information

How we reached 0 technical debt in our Eclipse project

How we reached 0 technical debt in our Eclipse project How we reached 0 technical debt in our Eclipse project Lorenzo Bettini Dip. DISIA, University of Firenze, Italy Vincenzo Caselli, Francesco Guidieri RCP-Vision, Firenze, Italy EclipseCon Europe, 2016 Our

More information

Overview of the Ruby Language. By Ron Haley

Overview of the Ruby Language. By Ron Haley Overview of the Ruby Language By Ron Haley Outline Ruby About Ruby Installation Basics Ruby Conventions Arrays and Hashes Symbols Control Structures Regular Expressions Class vs. Module Blocks, Procs,

More information

Content Module. ActiveModeler Avantage. Managing Enterprise Documentation. Version 1.2, 6 May KAISHA-Tec What does the Content Module do?

Content Module. ActiveModeler Avantage. Managing Enterprise Documentation. Version 1.2, 6 May KAISHA-Tec What does the Content Module do? ActiveModeler Avantage Managing Enterprise Documentation Content Module User Guide Version 1.2, 6 May 2009 ActiveModeler, ActiveFlow and ActiveModeler Avantage are registered trademarks of KAISHA-Tec Co.

More information

3rd Lecture Languages for information modeling

3rd Lecture Languages for information modeling 3rd Lecture Languages for information modeling Agenda Languages for information modeling UML UML basic concepts Modeling by UML diagrams CASE tools: concepts, features and objectives CASE toolset architecture

More information

Textadept Quick Reference

Textadept Quick Reference FOURTH EDITION Textadept Quick Reference Mitchell Textadept Quick Reference by Mitchell Copyright 2013, 2015, 2016, 2018 Mitchell. All rights reserved. Contact the author at mitchell@foicica.com. Although

More information

Modeling Issues Modeling Enterprises. Modeling

Modeling Issues Modeling Enterprises. Modeling Modeling Issues Modeling Enterprises SE502: Software Requirements Engineering Modeling Modeling can guide elicitation: It can help you figure out what questions to ask It can help to surface hidden requirements

More information

flex is not a bad tool to use for doing modest text transformations and for programs that collect statistics on input.

flex is not a bad tool to use for doing modest text transformations and for programs that collect statistics on input. flex is not a bad tool to use for doing modest text transformations and for programs that collect statistics on input. More often than not, though, you ll want to use flex to generate a scanner that divides

More information

Syntax and Variables

Syntax and Variables Syntax and Variables What the Compiler needs to understand your program, and managing data 1 Pre-Processing Any line that starts with # is a pre-processor directive Pre-processor consumes that entire line

More information

> Semantic Web Use Cases and Case Studies

> Semantic Web Use Cases and Case Studies > Semantic Web Use Cases and Case Studies Case Study: Improving Web Search using Metadata Peter Mika, Yahoo! Research, Spain November 2008 Presenting compelling search results depends critically on understanding

More information

COMP 110 Project 1 Programming Project Warm-Up Exercise

COMP 110 Project 1 Programming Project Warm-Up Exercise COMP 110 Project 1 Programming Project Warm-Up Exercise Creating Java Source Files Over the semester, several text editors will be suggested for students to try out. Initially, I suggest you use JGrasp,

More information

ORACLE WCM 11G MASTER CLASS

ORACLE WCM 11G MASTER CLASS Copyright 2011 Redstone Content Solutions LLC Oracle WCM 11g Master Class Training Agenda Revised Monday, May 2nd, 2011 REDSTONE CONTENT SOLUTIONS PRESENTS ORACLE WCM 11G MASTER CLASS Audience Designers

More information

CSSE 490 Model-Based Software Engineering: Software Factories

CSSE 490 Model-Based Software Engineering: Software Factories CSSE 490 Model-Based Software Engineering: Software Factories Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: MBE Discipline Relate Model-Based

More information

A Guide to CMS Functions

A Guide to CMS Functions 2017-02-13 Orckestra, Europe Nygårdsvej 16 DK-2100 Copenhagen Phone +45 3915 7600 www.orckestra.com Contents 1 INTRODUCTION... 3 1.1 Who Should Read This Guide 3 1.2 What You Will Learn 3 2 WHAT IS A CMS

More information

Browsing the Semantic Web

Browsing the Semantic Web Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 237 245. Browsing the Semantic Web Peter Jeszenszky Faculty of Informatics, University

More information

erwin Data Modeler Implementation Guide Release 9.8

erwin Data Modeler Implementation Guide Release 9.8 erwin Data Modeler Implementation Guide Release 9.8 This Documentation, which includes embedded help systems and electronically distributed materials (hereinafter referred to as the Documentation ), is

More information

Distribution and web services

Distribution and web services Chair of Software Engineering Carlo A. Furia, Bertrand Meyer Distribution and web services From concurrent to distributed systems Node configuration Multiprocessor Multicomputer Distributed system CPU

More information

CSE302: Compiler Design

CSE302: Compiler Design CSE302: Compiler Design Instructor: Dr. Liang Cheng Department of Computer Science and Engineering P.C. Rossin College of Engineering & Applied Science Lehigh University February 20, 2007 Outline Recap

More information

Binary Markup Toolkit Quick Start Guide Release v November 2016

Binary Markup Toolkit Quick Start Guide Release v November 2016 Binary Markup Toolkit Quick Start Guide Release v1.0.0.1 November 2016 Overview Binary Markup Toolkit (BMTK) is a suite of software tools for working with Binary Markup Language (BML). BMTK includes tools

More information

A Top-Down Visual Approach to GUI development

A Top-Down Visual Approach to GUI development A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084

More information

Introduction to Lexical Analysis

Introduction to Lexical Analysis Introduction to Lexical Analysis Outline Informal sketch of lexical analysis Identifies tokens in input string Issues in lexical analysis Lookahead Ambiguities Specifying lexical analyzers (lexers) Regular

More information

ZEROING IN DATA TARGETING IN EDISCOVERY TO REDUCE VOLUMES AND COSTS

ZEROING IN DATA TARGETING IN EDISCOVERY TO REDUCE VOLUMES AND COSTS ZEROING IN DATA TARGETING IN EDISCOVERY TO REDUCE VOLUMES AND COSTS WELCOME Thank you for joining Numerous diverse attendees Today s topic and presenters This is an interactive presentation You will receive

More information

CSc 453 Compilers and Systems Software

CSc 453 Compilers and Systems Software CSc 453 Compilers and Systems Software 3 : Lexical Analysis I Christian Collberg Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2009 Christian Collberg August 23, 2009

More information

Design Document CDT Remote Search/Index Framework. Chris Recoskie Vivian Kong Mike Kucera Jason Montojo. IBM Corporation

Design Document CDT Remote Search/Index Framework. Chris Recoskie Vivian Kong Mike Kucera Jason Montojo. IBM Corporation Design Document CDT Remote Search/Index Framework Chris Recoskie Vivian Kong Mike Kucera Jason Montojo IBM Corporation Page 1 of 26 1 Introduction 1.1 Purpose The purpose of this document is to describe

More information

Integration With the Business Modeler

Integration With the Business Modeler Decision Framework, J. Duggan Research Note 11 September 2003 Evaluating OOA&D Functionality Criteria Looking at nine criteria will help you evaluate the functionality of object-oriented analysis and design

More information

Release Notes March 2016

Release Notes March 2016 Release Notes March 2016 About the Release Notes... 3 Release Overview... 3 End of Life Announcements... 3 Other Announcements... 5 Enhancements... 6 Doc Launcher for uploading 3 rd party documents and

More information

UPTR - a simple parse tree representation format

UPTR - a simple parse tree representation format UPTR - a simple parse tree representation format Jurgen Vinju Software Transformation Systems October 22, 2006 Quality of Software Transformation Systems Some Questions on Parsing Two pragmatical steps

More information

Quark XML Author for FileNet 2.5 with BusDocs Guide

Quark XML Author for FileNet 2.5 with BusDocs Guide Quark XML Author for FileNet 2.5 with BusDocs Guide CONTENTS Contents Getting started...6 About Quark XML Author...6 System setup and preferences...8 Logging in to the repository...8 Specifying the location

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information