a unified format for language documents
play

A Unified Format for Language Documents Vadim Zaytsev and Ralf - PowerPoint PPT Presentation

A Unified Format for Language Documents Vadim Zaytsev and Ralf Lmmel Software Languages Team Universitt Koblenz-Landau Motivation Formal languages are defined by formal grammars Real languages are defined by their specifications


  1. A Unified Format for Language Documents Vadim Zaytsev and Ralf Lämmel Software Languages Team Universität Koblenz-Landau

  2. Motivation � Formal languages are defined by formal grammars � Real languages are defined by their specifications � A standard is a complex artifact � Adequate supporting technology is needed � Co-evolution of documents and grammarware tools � “Literate programming”

  3. Language document engineering Focus on grammars (D:EF->:? .(B-.F&-F.>?0 !"#$#% !"#$%&'()* *GB-.*&->:? &'(()*% &:..(&->:? BH(&>*E>I*->:? !"# @<"# 16789$+&:.(9$;;;5 +,-. +,-. +9:7 <!# 2=4 +,-. .+-/0/+,-. +,-.*&-(/ <.*?BC:.)(/ +9:7 0.*))*. 0.*))*. "#1234 +,-. 12345 12345 ('"35" 2=4$>?$@<"# %A4 +,-.8 6,7 %A4 ;;; 8 ;;;

  4. Language document engineering Focus on documents (B0C1-D02 D)E.0B()(2- :;"# <<< !"#$#% +,-. !"#$%&'()* &'(()*% ;(! +-56 +,-. 789$!"# +,-. -'.4+ +,-.*&-(/ ;.*2=>0.)(/ +-56 /0&1)(2- /0&1)(2- "#/0123('"14" 3#456 3#456 A45 :;"# +,-. 5#89##: +,-.7 <<< 40&?00@ <<<

  5. Language standardization American National Standards Institute (ANSI, 1918) � European Computer Manufacturers Association (ECMA, 1961) � Institute of Electrical and Electronics Engineers Standards Association (IEEE, 1884) � International Electrotechnical Commission (IEC, 1906) � International Organization for Standardization (ISO, 1947) � International Telecommunication Union (ITU, 1865) � Internet Engineering Task Force (IETF, 1986) � Object Management Group (OMG, 1989) � Organization for Advancement of Structured Information Standards (OASIS, 1993) � Website Standards Association (WSA, 2006) � World Wide Web Consortium (W3C, 1994) �

  6. Control group (for the paper) � IBM Informix � IAL (Algol 58) � ISO C ♯ � JOVIAL � Design Patterns � OMG MOF � ANSI Smalltalk � W3C XPath IAL Jovial Patterns Smalltalk Informix C# MOF XPath [MOF06] [BBC + 07] Property [Bac60] [MIL84] [GHJV95] [Sha97] [IBM03] [Sta06] ACM DoD — ANSI IBM ECMA, ISO OMG W3C Body IBM — Pearson — IBM Microsoft — — Company 1960 1984 1995 1997 2003 2006 2006 2007 Year 21 158 395 304 1344 548 88 111 Pages BNF BNF UML BNF RT BNF UML EBNF Notation

  7. Language documentation � Presentation � Adobe Framemaker, Microsoft Word, … � Structure � DocBook, in-house XML schema � Topic � DITA, Wikis

  8. Domain concepts � Synopsis � Rationale � Description � Example � Syntax � Update � Constraints � Default � References � Value � Relationship � List � Semantics � Section & Subtopic

  9. Domain concepts � Synopsis � Rationale � Description � Example � Syntax � Update 5.3.1.18 Message: printString � Constraints � Default Synopsis Return a string that describes the receiver. � References Definition: <Object> � Value A string consisting of a sequence of characters that describe the receiver are returned as the result. � Relationship � List The exact sequence of characters that describe an object are implementation defined. Return Value <readableString> unspecified � Semantics � Section & Subtopic Errors none

  10. Domain concepts � Synopsis � Rationale � Description � Example � Syntax � Update 5.3.1.18 Message: printString � Constraints � Default Synopsis Return a string that describes the receiver. � References � Value Definition: <Object> A string consisting of a sequence of characters that describe the receiver are returned as the result. � Relationship � List The exact sequence of characters that describe an object are implementation defined. Return Value � Semantics � Section & Subtopic <readableString> unspecified Errors none

  11. Domain concepts 5.3.1.18 Message: printString Synopsis Return a string that describes the receiver. Definition: <Object> A string consisting of a sequence of characters that describe the receiver are returned as the � Synopsis � Rationale result. The exact sequence of characters that describe an object are implementation defined. Return Value � Description � Example <readableString> unspecified Errors � Syntax � Update none � Constraints � Default � References � Value � Relationship � List � Semantics � Section & Subtopic

  12. Domain concepts � Synopsis � Rationale � Description � Example 5.3.1.10 Message: identityHash Synopsis � Syntax � Update Return an integer hash code that can be used in conjunction with an #== (identity) comparison. Definition: <Object> � Constraints � Default An integer value that can be used as a hash code for the receiver is returned. The hash code is intended for use in conjunction with an #== comparison. The range, minimum, or maximum values of the result is implementation defined. � References � Value The identity hash of an object must be temporally invariant . Return Value <integer> unspecified = � Relationship � List Errors none � Semantics � Section & Subtopic Rationale Some existing implementations use the selector #basicHash for this message. #basicHash is inappropriate because of the convention that selectors starting with the sequence "basic" are private to the implementation of an object.

  13. Domain concepts � Synopsis � Rationale � Description � Example � Syntax � Update � Constraints � Default 3.1 Basics A VariableReference evaluates to the value to which the variable name is � References bound in the set of variable bindings in the context. It is an error if the variable � Value name is not bound to any value in the set of variable bindings in the expression context. � Relationship � List Parentheses may be used for grouping. [14] Expr ::= OrExpr � Semantics � Section & Subtopic [15] PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall

  14. 10.3 Property Identifiers extends Basic::Property with the ability to designate a property as an identifier for the containing element. Domain concepts Properties isID: Boolean [0..1] - True indicates this property can be used to uniquely identify an instance of the containing Class. Only one Property in a class may have isID==true. Operations No additional operations. Constraints � Synopsis � Rationale [1] Property.isID can only be true for one Property of a Class. Semantics A Property with isID==true may be used as part of the URI identifying an object instance. � Description � Example Rationale Elements must have identity. The Property isID formalizes this capability in the metadata describing the element. � Syntax � Update Changes from MOF 1.4 None. � Constraints � Default � References � Value � Relationship � List � Semantics � Section & Subtopic

  15. 10.3 Property Identifiers extends Basic::Property with the ability to designate a property as an identifier for the containing element. Domain concepts Properties isID: Boolean [0..1] - True indicates this property can be used to uniquely identify an instance of the containing Class. Only one Property in a class may have isID==true. Operations No additional operations. Constraints � Synopsis � Rationale [1] Property.isID can only be true for one Property of a Class. Semantics A Property with isID==true may be used as part of the URI identifying an object instance. � Description � Example Rationale Elements must have identity. The Property isID formalizes this capability in the metadata describing the element. � Syntax � Update Changes from MOF 1.4 None. � Constraints � Default � References � Value � Relationship � List � Semantics � Section & Subtopic

  16. Operations No additional operations. Domain concepts Constraints [1] Property.isID can only be true for one Property of a Class. Semantics A Property with isID==true may be used as part of the URI identifying an object instance. Rationale Elements must have identity. The Property isID formalizes this capability in the metadata describing the element. � Synopsis � Rationale Changes from MOF 1.4 None. � Description � Example � Syntax � Update � Constraints � Default � References � Value � Relationship � List � Semantics � Section & Subtopic

Recommend


More recommend