RAPID Resource API Design Language
|
|
- Florence Cannon
- 5 years ago
- Views:
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
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 information3. 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 informationCS 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 informationIntroduc)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 informationParser 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 informationBarista 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 informationSharePoint 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 informationCS664 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 informationGRAPHIC 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 informationTeiid 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 informationSharePoint 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 informationAN 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 informationDomain-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 informationITC213: 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 informationEclipse 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 informationModel-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 informationCode 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 informationDomain-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 informationReqView 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 informationA 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 informationSharePoint 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 informationCS 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 informationFull 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 informationPython 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 informationIntroduction 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 informationWhat 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 informationDiscover, 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 informationDeveloping 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 informationSemantic 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 informationArcher 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 informationClient 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 informationChapter 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 informationClient 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 informationCompiler 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 informationCompilers 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 informationSpell 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 informationGeneralized 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 informationWeb 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 informationEclipse 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 informationSparqube 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 informationexlepse 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 informationCS 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 informationWorking 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 informationUsing 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 informationDITA 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 informationCA 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 informationChapter 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 informationBreak 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 informationMEAP 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 informationBest 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 informationIPCoreL. 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 informationNew 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 informationMarkLogic 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 information08/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 informationSPSS 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 informationFREQUENTLY 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 informationUEE1302 (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 informationFUNCTIONAL 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 informationPlan. 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 informationTRAINING 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 informationParser 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 informationHow 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 informationImprove 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 informationVERINT 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 informationProgramming 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 informationSyntax 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 informationTable 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 informationRequirements 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 informationWhat'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 informationSyntax 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 informationCreating 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 informationBackground. 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 informationHow 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 informationOverview 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 informationContent 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 information3rd 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 informationTextadept 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 informationModeling 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 informationflex 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 informationSyntax 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 Case Study: Improving Web Search using Metadata Peter Mika, Yahoo! Research, Spain November 2008 Presenting compelling search results depends critically on understanding
More informationCOMP 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 informationORACLE 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 informationCSSE 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 informationA 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 informationBrowsing 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 informationerwin 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 informationDistribution 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 informationCSE302: 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 informationBinary 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 informationA 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 informationIntroduction 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 informationZEROING 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 informationCSc 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 informationDesign 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 informationIntegration 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 informationRelease 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 informationUPTR - 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 informationQuark 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 informationLanguage 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