High Level Command Language (HLCL) Reference Manual

Size: px
Start display at page:

Download "High Level Command Language (HLCL) Reference Manual"

Transcription

1 High Level Command Language (HLCL) Reference Manual

2 Seite/Page: I von/of II DOCUMENT CHANGE RECORD ISSUE/REV. DATE Affected Paragraph/Page DESCRIPTION OF CHANGE 0 / all initial issue 1 / all Rids and comments from HLCL review ( ) incorporated 1 / A all COL ERNO DDR 0174 & HCI HCI HCI HCI all HCI all HCI HCI HCI HCI HCI picture updated HCI HCI HCI HCI HCI HCI HCI HCI HCI HCI HLCL HLCL HLCL HLCL all M. Danne Inputs from VICOS team all S. Lütt Inputs from the CSS team all COL MBER ZU1 TN / all COL RIBRE DDR 0563 changes required by COL RIBRE DDR 0587 which has not been formally approved but the contents are agreed. 2/A Ref. to applicable document updated , page 6 Delete Parameter lists must be enclosed in parentheses. 4.17, page 13 Change LIBRARIES to IMPORTS in type OB- JECTS.

3 Seite/Page: II von/of II

4 Seite/Page: 1 1 INTRODUCTION 1.1 Identification and Scope This is the Language Reference Manual for the Columbus High Level Command Language (HLCL), Document No.: COL RIBRE STD 0009 (previous Doc. No.: STD ). 1.2 Purpose This document provides the language definition for HLCL. It serves the purpose of establishing the formal requirements on the language, i.e. its syntax and semantics. It is particularly intended for the design and development of the HLCL interpreter. Chapter 3 gives an overview on the Columbus Language Concepts: UCL and HLCL and their relationship, as well as the basic conceptual ideas that led to the definition of HLCL. In chapter 4 the definition of the High Level Command Language is given.

5 Seite/Page: 2 2 APPLICABLE AND REFERENCE DOCUMENTS 2.1 Applicable Documents The following documents form a part of this specificaiton to the extent specified here. In case of conflict this specification shall be superseding. The exact actual status of the documents listed below is to be obtained from the contractual baseline status list User Control Language Reference Manual COL RIBRE STD 0010, Issue 4/, Reference Documents None identified.

6 Seite/Page: 3 3 LANGUAGE CONCEPTS 3.1 HLCL and UCL The High Level Command Language (HLCL) is the interactive counterpart of the User Control Language (UCL). UCL acts as a pure programming language: automated procedures and libraries are edited off line, compiled and kept in the database for later on line execution. HLCL is an interactive command language used in different environments in the Columbus Ground System: within interactive sessions, users type commands which are executed immediately by the HLCL command interpreter. UCL and HLCL are, in principle, lexically, syntactically and functionally identical. They are essentially the same language. There are, however, specific features, extensions and restrictions for both language domains. This document defines the HLCL specific differences between UCL and HLCL. It does not describe the basic language itself as given by the UCL Language Reference Manual. The UCL RM is considered part of this document. 3.2 General principles It should be noted as an obvious fact that the design principles for an interactive command language like HLCL are naturally different from those of a programming language like UCL: While programs in a programming language are typically written only once, but read a lot of times (even by different people), commands are typically typed repeatedly and never read again. So while, for a programming language, readability is a major requirement, and features that ease writing play a minor role (e.g. optional parameters) or should even be entirely forbidden (e.g. abbreviations), the contrary holds for command languages. Here easy input is a major topic. While the program logic of e.g. a UCL program must be completely defined before actual execution and allows no interactive modifications at run time, command language sessions have totally contrary characteristics: the session logic is interactively developed (possibly on an experimental or trial and error basis) during the session. Therefore flexibility and interactive assistance are major requirements. While in the case of UCL programs full checks on availability and compatibility of accessed resources must be performed at mission preparation time, these checks are naturally on line constituents of an HLCL session and role themselves as decision factors for the further session development. While run time efficiency is an important aspect for UCL programs, it is of less importance for HLCL sessions. These principles have driven the definition of the HLCL specifics as described in this manual.

7 Seite/Page: Usage HLCL may be used in a command window, i.e. where a user interactively types commands, or in any other environment where commands are generated by software, e.g. in the synoptic displays environment used for verification, integration, and checkout. When used in a command window, it is assumed that the command window software will provide for the usual support services like command history, command line editing, and command interrupt. This manual, however, defines only the language itself, not its use in any specific environment.

8 Seite/Page: 5 4 LANGUAGE DEFINITION 4.1 Sessions A session is the basic commanding and execution environment for interactive operation. It is, in a certain sense, the interactive counterpart of a UCL automated procedure (AP). Within a session the user types more or less the same commands in the same form that may appear in an AP in UCL. There are, however, some essential differences: There is no syntactic frame that encloses a session, like e.g. a session header, or the begin and end keywords. When logged in, the user is free to start typing commands. There is no required order or grouping of commands, e.g. declarations, import statements and any other commands may be mixed arbitrarily. Declared objects may even be deleted. The underlying application software may make its own specific language additions available, such as login and logout command sequences and application specific types, commands and functions. All additions will, however, conform to the basic language definition Debug mode The user may switch between normal mode and debug mode by setting the predefined variable DEBUG to false or true, respectively. In normal mode commands are executed immediately. In debug mode each command is first displayed in expanded and evaluated form, i.e. abbreviations are removed, expressions are evaluated, defaults are inserted and all parameters are given in named notation. The user is then asked for explicit confirmation before executing the command Command logging Interactively typed commands may be collected in a log file to automatically build a command sequence which may then be executed again. For this purpose the user can open and close command log files with the OPEN and CLOSE commands. Whenever a new file is opened, a new command sequence is built. The OPEN command allows for different logging options. Command logging mode can be controlled with the predefined variable KEEP. When keep is set to true (and a log file is open), all interactively entered commands are logged in the currently open log file, when set to false, commands are not logged. This may be used for selective command logging. Note that this command logging mode provided by the HLCL Interpreter itself is independent of any logging functionality that may be provided by the applications using the HLCL Interpreter.

9 Seite/Page: Command Sequences A command sequence is a series of single commands put in a file or in the database. They may be used to set up a certain working environment (define variables, constants, alias names etc.). Command sequences may have parameters, they are restricted to predefined types and open arrays of predefined types, but may be of any mode. A command sequence can be executed at any time like a single command by using its file name or path name as the command name, and specifying its parameters in the usual form, as for any other command. A command sequence acts as a non interactive session. It may contain any commands, in particular it may contain calls to other command sequences. The execution of command sequences thus forms an execution hierarchy whose upper level is the session. When a command sequence is started, execution at the current level is blocked until the called sequence has completed its execution. Execution is then resumed at the point of call. This implies that during execution of a command sequence no commands can be given from the keyboard. The execution can, however, be interrupted by pressing an interrupt key combination: the currently executed command is then cancelled, and control immediately returns to the session. The sequence is suspended but remains loaded and can be resumed at any time with the RESUME command Command sequence syntax The command sequence syntax resembles that of a procedure with the following differences: The keyword procedure is replaced by the keyword sequence. The name given after the keyword is implicitly declared as an alias for the pathname (for sequences kept in the database) or for the file name (for sequences kept in files). The begin keyword is omitted. A command sequence does not have a local scope: all declarations create global objects at the session level. But the sequence parameters, as well as the alias derived from the sequence name, are visible and accessible only within the command sequence. Within a command sequence, a grouping of commands is not required, i.e. import statements, declarations and other commands may be mixed arbitrarily. Within a command sequence the same rules apply as in a session, but some session specific relaxations and extensions are not valid: Abbreviations are not allowed. The end of a line is not a command terminator, i.e. commands must be terminated with a semicolon and may be formatted over several lines if desired. Only optional parameters may be omitted. Engineering units must not be omitted. (deleted) Echo mode When the predefined variable ECHO is set to true, commands executed from a command sequence are echoed on the screen. When ECHO is not set, only start and completion of command sequences are reported.

10 Seite/Page: Error handling in command sequences When an error occurs in a command sequence, the effect depends on the predefined TRAP variable. If error trapping is on, an error within a command in a command sequence interrupts the command sequence, as if the interrupt key combination had been pressed. Execution can then be resumed with the RESUME command Single step mode Command sequences may be executed in single step mode. This is controlled via the predefined variable STEP. When this variable is set to true, each command from a command sequence must be confirmed before execution. When it is set to false, commands are executed automatically without confirmation. 4.3 Command lines In UCL a statement is terminated with a semicolon, and the line structure is irrelevant. In HLCL the semicolon is a command terminator, as well. But the end of an input line acts as an additional command terminator. This means that practically the semicolon may be omitted when single commands are entered, each on a separate line. It must not be omitted, however, between two commands on the same line. single command on a line, no semicolon needed two commands on a line, separated by semico- Examples: PUT X X := Y + Z; PUT X lon

11 Seite/Page: Command and function classes HLCL provides most of the basic language material of UCL, as well as HLCL specific extensions. In HLCL, statements and other syntactic entities are usually referred to as commands. The basic UCL statements constitute the primary command set of HLCL. An essential characteristic of HLCL is that it does not restrict itself to a predefined set of commands, but that it is able to incorporate ( inherit ) all executable objects in the Columbus database and make them transparently available as commands or functions, respectively. The following command and function classes can be distinguished: Import statements As defined in the UCL Reference Manual. Declarations As defined in the UCL Reference Manual, but HLCL does not support the declaration of procedures and functions. Assignments As defined in the UCL Reference Manual. Standard UCL procedures and functions ( intrinsics ) As defined in the UCL Reference Manual. Simple commands and functions These are predefined commands and functions. A basic set of primary commands and functions is described in this paper, but within a given application environment (EGSE, simulator, on board) the relevant application may add application specific commands and functions. Thus the primary command set is made up of basic commands and functions predefined in HLCL application specific commands and functions added by an application. Inherited commands and functions All executable objects in the Columbus database are accessible as quasi HLCL commands or functions. They are activated in the same syntax as primary commands and functions. Inherited commands and functions comprise automated procedures (APs, are commands) UCL library routines (are commands and functions, respectively). Command sequences Command sequences kept in the database or in files may be called like single commands (see 4.2). A help facility.

12 Seite/Page: Import The import statement is identical to that in UCL. 4.6 Declarations and deletions The UCL declarations are fully available in HLCL. HLCL extends the alias declaration: an alias may also be assigned to a string constant. When used, the string alias must designate the name of a file that contains a command sequence. The intended effect is to be able to call a command sequence contained in a file by a simple name. Example: alias SHUTDOWN = /usr/columbus/users20/vicos/shutdown.hlcl 4.7 Assignment Assignments are identical to UCL assignments. 4.8 Standard procedures & functions All the procedures and functions defined in the UCL Reference Manual may be called from HLCL, procedures becoming commands. HLCL predefines additional standard procedures. HLCL allows to delete (undeclare) a user declared object (constant, variable, type,...) with the standard procedure DELETE. Predefined objects and objects imported from libraries cannot be deleted. DELETE DELETE [km] HLCL predefines an additional standard procedure TRIGGER to trigger objects of type PULSE and BURST_PULSE. It has two forms: TRIGGER TRIGGER PULSE BURST_PULSE BURST_PULSE

13 Seite/Page: Simple commands A simple command is essentially identical to a UCL procedure call, i.e. it is invoked with its name, followed by its parameter list, if any. HLCL relaxes the UCL syntax rules to support easy typing: Parameter lists are given without the enclosing parentheses. All parameters (except open array and open string out parameters) may be omitted, an appropriate default action is then taken: For optional parameters the defined default value is taken. Mandatory in and in out parameters are prompted for. For pure out parameters the returned value is displayed. A few simple commands are predefined. This basic command set may be extended by various applications with application specific command sets Return command The return command (without a value) is only allowed in command sequences. It terminates execution of the command sequence and returns control to the caller Structured commands The HLCL structured commands identically correspond to the UCL control structures (if, case, loop, while, for, repeat). They are only allowed in command sequences Expressions Expressions are identical to UCL expressions Path names HLCL extends the path name syntax. Path names may start with \\ instead of just \. Such path names are implicitly understood to be a subpath of the default path defined in the varible DEFAULT_PATH, i.e. they are implicitly prefixed with the current value of DEFAULT_PATH Type conversions HLCL defines new type conversions (see 4.17): PULSE > BOOLEAN BURST_PULSE > UNSIGNED_INTEGER. HLCL allows type conversions from any type to string types. In the case of named string types this follows the usual conversion syntax. A general conversion to string may also be written as string (expression)

14 Seite/Page: Type overloading HLCL relaxes the rule that a parameter is bound to exactly one type: parameters of primary commands (basic as well as application specific) may be of more than one type. Such parameters are said to be (type) overloaded. An overloaded parameter accepts values of any of its types. If it is an open array parameter, the list of values may contain a mixture of values of any of the allowed types Units of measure The HLCL unit of measure concept is identical to the corresponding UCL concept. The strict conformance rules of UCL are, however, relaxed: A unitized variable may be assigned a unitless value. The value is then implicitly unitized with the same unit as the variable. A unitless variable may be assigned a unitized value. The unit is then ignored. A unitless in parameter may be passed a unitized value. The unit is then ignored. A unitized in parameter may be passed a unitless value. The value is then implicitly unitized with the same unit as the parameter. A unitized (in) out parameter may be passed a unitless variable. Within the procedure or function, the value of the variable is then assumed to be of the same unit as the parameter. A unitless (in) out parameter may be passed a unitized variable. The unit of the variable is then ignored within the procedure or function Abbreviations All identifiers may be abbreviated arbitrarily, as long as they remain unique, simply by cutting off word tails. In compound identifiers (i.e. names composed of name parts separated by underscores) the name parts can be abbreviated separately like simple identifiers, as long as the whole name remains unique. Examples: Identifier VOLTAGE ASSIGN_PICTURE SEND_TM_MESSAGE Possible abbreviations VOLTAG, VOLTA, VOLT, VOL ASS_PIC, ASS_P, A_P, ASS SEND_TM, S_TM_MES, S_T_M In general, UCL reserved words (keywords) cannot be abbreviated. But, for convenience, if the first word of a command is a keyword, e.g. in declarations (constant, type, variable, alias, unit) or in the import command, then it may be abbreviated. Within a command sequence, abbreviations are not allowed.

15 Seite/Page: Help facility HLCL provides a help facility that allows the user to obtain a short description on an object given by its name, an engineering unit, or on the value of an expression. Syntax: Help ::=? [ Item ] Item ::= Object [... ] [ Constraint ] Expression Unit Object ::= Qualified_Identifier Name Constraint ::= ( Identifier {, Identifier } ) A single question mark displays a list of all (predefined or declared) identifiers. The effect of a question mark applied to a (qualified) identifier depends on the identifier. If it is ambiguous, then it is assumed to be an abbreviation and a one line information is displayed for all objects whose name matches the abbreviation. This line contains the value of the object, if any. If the identifier is unique, a more detailed information for that object is displayed: For a command or function name a short command/function information is displayed, comprising the parameter list, and for each parameter the type(s), parameter mode and default value, if any. A library procedure/function is treated as a simple command/function. For an alias, in addition to the value of the alias an information on the designated object is displayed, depending on the type of object. For all other objects a short identification of the object is displayed, together with its value, if any. A question mark applied to an expression displays the expression with all abbreviations expanded, together with its value. For a unit, its definition in terms of the seven basic SI units is displayed. The effect of a question mark applied to a database path name depends on the type of item: For a virtual item (non end item) a one line information for each of its children is displayed. An AP path name is treated like a simple command. For a library path name a list of the library contents is displayed. A path name may be constrained to a subset of item types by giving a list of possibly abbreviated item types in parentheses. The recursive indicator (... ) requests information to be displayed recursively: For a unique (qualified) identifier an information line is displayed for the identifier itself and for all identifiers referenced in its definition. This process is repeated recursively until all identifiers have been resolved. For a virtual database item not only its children are displayed, but also the children of the (virtual) children, and so on recursively down to end item level. Examples:? Display list of all identifiers? ASS_PIC Display details of command ASSIGN_PICTURE? ASS_PIC... Display details of ASSIGN_PICTURE recursively? MIN (INTEGER) Display value of an expression? (X + y) * Z Display value of an expression? [km/h] Display [km/h] in terms of [m/s]? \APM\GROUND\VICOS... Display database subtree recursively? \APM\GROUND... (UCL,HLCL) Display all UCL and HLCL items in database subtree

16 Seite/Page: Predefined types The HLCL data types are identical to the UCL types. HLCL predefines the following additional types, an application may add its own application specific types. type OBJECTS This is an enumeration type that defines the objects that may be listed with the LIST command. type OBJECTS Objects to be listed (see LIST command): = (CONSTANTS, all constants (including enumeration literals) LITERALS, all enumeration literals (subset of CONSTANTS) VARIABLES, all variables TYPES, all types ALIASES, all alias names PARAMETERS, all parameters of the currently running sequence UNITS, all measurement units COMMANDS, all commands (including intrinsic and other procedures) FUNCTIONS, all functions (including intrinsic functions) INTRINSICS, all standard ( intrinsic ) procedures and functions IMPORTS, all imported UCL libraries SUBTREES, the set of database subtrees authorized for the user ITEM_TYPES, the set of database item types authorized for the user CALL_STACK) the stack of loaded command sequences type PULSE A pulse is a binary event used by a simulator (CSS) function block to trigger the execution of another function block. A function block receiving a triggered parameter of type PULSE is automatically activated within the next time frame. Objects of type PULSE are only defined in the database. They cannot be declared, have no operations and cannot be assigned. They are initially cleared and may be triggered with the standard procedure TRIGGER. Triggering a PULSE object changes its value. The value of a PULSE object may be obtained by converting it to BOOLEAN. The conversion yields true for triggered objects, otherwise false. type BURST_PULSE A burst pulse is a counting event used by a simulator (CSS) function block to trigger the execution of another function block, like a pulse. A function block receiving a triggered parameter of type BURST_PULSE is automatically activated within the next time frame. When triggered, it does not just become set but, rather, increments its value. Objects of type BURST_PULSE are only defined in the database. They cannot be declared, have no operations and cannot be assigned. They are initially cleared (i.e. they have value 0) and may be triggered with the standard procedure TRIGGER to increment thair value. The default increment is 1, greater increments may be requested as a second parameter to TRIGGER. The value of a PULSE object may be obtained by converting it to UNSIGNED_INTEGER. The conversion yields a value > 0 for triggered objects, otherwise 0.

17 Seite/Page: Predefined variables HLCL predefines some variables with a special meaning. These variables have an initial default value that may be changed by the user with an assignment. variable DEFAULT_PATH: pathname := application defined Wherever a path name is prefixed with \\, the prefix is expanded with the current value of the variable DEFAULT_PATH. This variable has an initial value defined by the underlying application. variable DEFAULT_NODE: pathname := application defined The default node used to start APs and call library routines. This variable has an initial value defined by the underlying application. variable ECHO: BOOLEAN := FALSE This variable defines whether commands executed from command sequences are echoed on the screen. If set to false, only start and stop of command sequences are reported. This variable is initially set to false. variable TRAP: BOOLEAN := FALSE This variable determines the error handling mechanism within command sequences. When set to true, an error in a command sequence interrupts execution of the sequence and returns control to the session. The sequence remains loaded and may be resumed with the RESUME command. When set to false, errors in a command sequence do not interrupt execution of the sequence. variable STEP: BOOLEAN := FALSE This variable selects single step execution of command sequences. When set to true, each command from a command sequence must be confirmed before execution. variable DEBUG: BOOLEAN := FALSE This variable selects debug mode. In debug mode all commands are displayed in expanded form (abbrevations resolved, defaults inserted etc.), and confirmation is requested before execution. variable KEEP: BOOLEAN := TRUE This variable controls command logging mode. When set to true (and a log file is open), all interactively typed commands are logged in expanded form in a command log file (see the OPEN and CLOSE commands). When set to false, nothing is logged, even if a log file is open.

18 Seite/Page: Predefined commands A set of primary commands is built in to HLCL on a fixed basis. This basis comprises the different command forms: declarations, assignments, simple commands, structured commands, and the help command. This section lists only the simple commands that are specific to HLCL and therefore not covered by the UCL LRM. Only the basic commands are listed here; for the different target environments, additional environment specific commands may be added. Each primary command is described in this section, giving its name, a short description and its parameter list. For each parameter, its mode, name, type(s) and default value, if any, are given. Parameters with a default value are optional Display commands LIST Display list of objects Display a list of all objects of a certain class. The list may be restricted to a specific scope. Parameters: in CLASS: OBJECTS the class of objects to be displayed. It is given as a value of the predefined enumeration type OBJECTS. in SCOPE: pathname := \\ This parameter allows to restrict the list to objects of a specific library scope determined by the path name of a library: only objects declared in that library are then listed. If no scope is given (\\), all scopes (i.e. the session and all imported libraries) are listed.

19 Seite/Page: Command sequence related commands CHECK Check a command sequence Check a command sequence for syntactical correctness. Note that problems resulting from execution of the command sequence in different session environments and from possibly violated semantical conditions between actual parameters and between commands themselves cannot be checked. Parameter: in SEQUENCE: pathname string Name of the command sequence (path name if in the database, string if in a file). SUSPEND Suspend execution of a command sequence Suspend command sequence execution and return to interactive input. The sequence may later be resumed at the suspension point. This command can only be used within a command sequence. RESUME Resume a suspended command sequence Resume command sequence execution which was suspended by the SUSPEND command, by error or user interrupt. CANCEL Cancel the command sequence call stack Remove the command sequence call stack, i.e all currently loaded (and suspended) command sequences. This command can only be used interactively when no command sequence is active. RESUME is then no longer possible.

20 Seite/Page: Input/output commands These commands are intended for interaction with the user from within a command sequence. GET Read input value from keyboard Read a value from the keyboard, optionally write a prompt before reading. The type of the value is determined by the actual parameter. Invalid input will be reported as an error, and reading will be repeated until a correct value has been read. Parameters: in PROMPT: string := The prompt to be written. out ITEM: any type The item to be read. PUT Display the value of an item Display the value of the parameter as an output line on the screen. The parameter may be an expression of any type. (Several items may be combined into a line by converting them to string and concatenating them with the + operator.) Parameter: in ITEM: any type The item to be displayed.

21 Seite/Page: Command logging commands These commands are used to control command logging. OPEN Open a command log file Open a new command log file and generate a command sequence in it. The syntactical form of the commands in the command sequence to be generated may be specified by several parameters. This command is only allowed when no log file is currently open. Parameters: in FILE: string Name of the log file to be created. in SEQUENCE: string Name of the command sequence to be created in the log file. in EXCLUDE: string := List of commands to be excluded from logging. Command names are separated by comma or blank. Assignment is given as :=, the help facility as?, the different declaration statements as the respective keyword. in NAMED: BOOLEAN := TRUE Specifies whether command parameters are to be generated in named notation. in EVALUATED: BOOLEAN := FALSE Specifies whether parameters are to be evaluated and given as values, or expressions are to be kept. in FORMATTED: BOOLEAN := FALSE Specifies whether commands are to be formatted with each parameter on a separate line, or unformatted with the whole command in one line. CLOSE Close the command log file The currently open command log file is closed, the generated command sequence is syntactically completed first. This command is only allowed when a log file is currently open.

22 Seite/Page: Predefined functions There are no predefined HLCL functions other than the standard functions described in the UCL Reference Manual. For the different target environments (such as ground testing and checkout, simulation) additional environment specific functions may be added to the basic ones Inherited commands and functions The commands and functions described in previous chapters make up the basis of HLCL. A more interesting aspect of HLCL is its capability of dynamically extending its primary command and function set by inheriting new commands and functions from the Columbus databases. Since an HLCL command can be seen as a parameterised procedure (more generally: an executable object with a parameter list), any objects in the Columbus databases that have this same property can theoretically be addressed as HLCL commands, similarly for functions. The objects conforming to these conditions are automated procedures (APs), UCL library procedures and functions and command sequences. The following sections describe how these database objects are mapped onto HLCL commands and functions Automated procedures (APs) Automated procedures are parameterised main programs written in UCL and compiled into an intermediate code (I Code) which is interpreted by I Code interpreters residing in different nodes in the network. The APs have a path name which reflects their position in the database name tree, and a parameter list. An AP can therefore be mapped on an HLCL command, the path name acting as the command name, and the parameter list obeying the HLCL parameter conventions. Activation of an AP can thus be expressed as an inherited quasi HLCL command, e.g. : \PAYLOAD\EQUIPMENT\UNIT_A\COMMAND MODE: 3 APs are executed on different nodes in a network. Several APs may be active concurrently, on different nodes or on the same node. The node name is obtained from the predefined variable DEFAULT_NODE UCL library procedures and functions UCL library procedures and functions are called like in UCL. The target node in the network is obtained from the predefined variable DEFAULT_NODE Command sequences Command sequences stored in the database can be called in the same form as an AP. They are immediately executed in the local workstation. For a description of command sequences see chapter 4.2.

High Level Command Language (HLCL) Reference Manual

High Level Command Language (HLCL) Reference Manual Dokument Typ: Document Type: STANDARD Titel: Title: High Level Command Language (HLCL) Reference Manual Lieferbedingungs Nr.: DRL/DRD No.: 3.745 Klassifikations Nr.: Classification No.: Produktgruppe:

More information

High Level Command Language (HLCL) Reference Manual

High Level Command Language (HLCL) Reference Manual Dokument Typ: Document Type: STANDARD Titel: Title: High Level Command Language (HLCL) Reference Manual Lieferbedingungs Nr.: DRL/DRD No.: Klassifikations Nr.: Classification No.: Produktgruppe: Product

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

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3 LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 10 Scope and visibility The rules defining the scope of declarations and the rules defining which identifiers are visible at various points in the

More information

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements Programming Languages Third Edition Chapter 9 Control I Expressions and Statements Objectives Understand expressions Understand conditional statements and guards Understand loops and variation on WHILE

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

RSL Reference Manual

RSL Reference Manual RSL Reference Manual Part No.: Date: April 6, 1990 Original Authors: Klaus Havelund, Anne Haxthausen Copyright c 1990 Computer Resources International A/S This document is issued on a restricted basis

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

Typescript on LLVM Language Reference Manual

Typescript on LLVM Language Reference Manual Typescript on LLVM Language Reference Manual Ratheet Pandya UNI: rp2707 COMS 4115 H01 (CVN) 1. Introduction 2. Lexical Conventions 2.1 Tokens 2.2 Comments 2.3 Identifiers 2.4 Reserved Keywords 2.5 String

More information

A Short Summary of Javali

A Short Summary of Javali A Short Summary of Javali October 15, 2015 1 Introduction Javali is a simple language based on ideas found in languages like C++ or Java. Its purpose is to serve as the source language for a simple compiler

More information

ECOM 4311 Digital System Design using VHDL. Chapter 7

ECOM 4311 Digital System Design using VHDL. Chapter 7 ECOM 4311 Digital System Design using VHDL Chapter 7 Introduction A design s functionality should be verified before its description is synthesized. A testbench is a program used to verify a design s functionality

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

0. Overview of this standard Design entities and configurations... 5

0. Overview of this standard Design entities and configurations... 5 Contents 0. Overview of this standard... 1 0.1 Intent and scope of this standard... 1 0.2 Structure and terminology of this standard... 1 0.2.1 Syntactic description... 2 0.2.2 Semantic description...

More information

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program Objectives Chapter 2: Basic Elements of C++ In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates

More information

Chapter 2: Basic Elements of C++

Chapter 2: Basic Elements of C++ Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates

More information

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction Chapter 2: Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition 1 Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers

More information

Chapter 9. Subprograms

Chapter 9. Subprograms Chapter 9 Subprograms Chapter 9 Topics Introduction Fundamentals of Subprograms Design Issues for Subprograms Local Referencing Environments Parameter-Passing Methods Parameters That Are Subprograms Calling

More information

CMSC 4023 Chapter 9. Fundamentals of Subprograms Introduction

CMSC 4023 Chapter 9. Fundamentals of Subprograms Introduction 9. 9.1. Introduction Two fundamental abstraction facilities Process abstraction Emphasized from early days Data abstraction Emphasized in the1980s 9.2. 9.2.1. General Subprogram Characteristics Each subprogram

More information

Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.

Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3. Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.3 Revision 1 Table of Contents Preface 3 Chapter 1 Introduction 3 Chapter

More information

MATLIP: MATLAB-Like Language for Image Processing

MATLIP: MATLAB-Like Language for Image Processing COMS W4115: Programming Languages and Translators MATLIP: MATLAB-Like Language for Image Processing Language Reference Manual Pin-Chin Huang (ph2249@columbia.edu) Shariar Zaber Kazi (szk2103@columbia.edu)

More information

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3 LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 2 Subprograms and packages Subprograms define algorithms for computing values or exhibiting behavior. They may be used as computational resources

More information

SMURF Language Reference Manual Serial MUsic Represented as Functions

SMURF Language Reference Manual Serial MUsic Represented as Functions SMURF Language Reference Manual Serial MUsic Represented as Functions Richard Townsend, Lianne Lairmore, Lindsay Neubauer, Van Bui, Kuangya Zhai {rt2515, lel2143, lan2135, vb2363, kz2219}@columbia.edu

More information

Programming Languages: Lecture 11

Programming Languages: Lecture 11 1 Programming Languages: Lecture 11 Chapter 9: Subprograms Jinwoo Kim jwkim@jjay.cuny.edu Chapter 9 Topics 2 Introduction Fundamentals of Subprograms Design Issues for Subprograms Local Referencing Environments

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

CGS RIBRE MA 0004 Issue 1/, mdb

CGS RIBRE MA 0004 Issue 1/, mdb mdb Table of Contents 1 The......................................................... 1 2 Usage................................................................ 3 2.1 Program Invocation.......................................................

More information

Extending SystemVerilog Data Types to Nets

Extending SystemVerilog Data Types to Nets Extending SystemVerilog Data Types to Nets SystemVerilog extended Verilog by adding powerful new data types and operators that can be used to declare and manipulate parameters and variables. Extensions

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

Objectives. In this chapter, you will:

Objectives. In this chapter, you will: Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates arithmetic expressions Learn about

More information

Visual C# Instructor s Manual Table of Contents

Visual C# Instructor s Manual Table of Contents Visual C# 2005 2-1 Chapter 2 Using Data At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion Topics Additional Projects Additional Resources Key Terms

More information

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going

More information

Maciej Sobieraj. Lecture 1

Maciej Sobieraj. Lecture 1 Maciej Sobieraj Lecture 1 Outline 1. Introduction to computer programming 2. Advanced flow control and data aggregates Your first program First we need to define our expectations for the program. They

More information

CGS. UCL Debugger User Manual

CGS. UCL Debugger User Manual Dok. Nr./No.: CGS-RIBRE-MA-0001 Ausgabe/Issue: 1 2004-09-01 Titel: Title: UCL Debugger User Manual Dokumenten Typ: Document Type: User Manual Dokumentenklasse: Document Class: Klassifikations-Nr.: Classification

More information

Language Reference Manual simplicity

Language Reference Manual simplicity Language Reference Manual simplicity Course: COMS S4115 Professor: Dr. Stephen Edwards TA: Graham Gobieski Date: July 20, 2016 Group members Rui Gu rg2970 Adam Hadar anh2130 Zachary Moffitt znm2104 Suzanna

More information

UNIT- 3 Introduction to C++

UNIT- 3 Introduction to C++ UNIT- 3 Introduction to C++ C++ Character Sets: Letters A-Z, a-z Digits 0-9 Special Symbols Space + - * / ^ \ ( ) [ ] =!= . $, ; : %! &? _ # = @ White Spaces Blank spaces, horizontal tab, carriage

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement Outline Expression Evaluation and Control Flow In Text: Chapter 6 Notation Operator evaluation order Operand evaluation order Overloaded operators Type conversions Short-circuit evaluation of conditions

More information

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */ Overview Language Basics This chapter describes the basic elements of Rexx. It discusses the simple components that make up the language. These include script structure, elements of the language, operators,

More information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss Chapter 1 terminology (parenthesized numbers are page numbers) Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement

More information

FRAC: Language Reference Manual

FRAC: Language Reference Manual FRAC: Language Reference Manual Justin Chiang jc4127 Kunal Kamath kak2211 Calvin Li ctl2124 Anne Zhang az2350 1. Introduction FRAC is a domain-specific programming language that enables the programmer

More information

Decaf Language Reference Manual

Decaf Language Reference Manual Decaf Language Reference Manual C. R. Ramakrishnan Department of Computer Science SUNY at Stony Brook Stony Brook, NY 11794-4400 cram@cs.stonybrook.edu February 12, 2012 Decaf is a small object oriented

More information

EnableBasic. The Enable Basic language. Modified by Admin on Sep 13, Parent page: Scripting Languages

EnableBasic. The Enable Basic language. Modified by Admin on Sep 13, Parent page: Scripting Languages EnableBasic Old Content - visit altium.com/documentation Modified by Admin on Sep 13, 2017 Parent page: Scripting Languages This Enable Basic Reference provides an overview of the structure of scripts

More information

CS 6353 Compiler Construction Project Assignments

CS 6353 Compiler Construction Project Assignments CS 6353 Compiler Construction Project Assignments In this project, you need to implement a compiler for a language defined in this handout. The programming language you need to use is C or C++ (and the

More information

Informatica 3 Syntax and Semantics

Informatica 3 Syntax and Semantics Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines

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

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of

More information

2.2 Syntax Definition

2.2 Syntax Definition 42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen Formal semantics of loosely typed languages Joep Verkoelen Vincent Driessen June, 2004 ii Contents 1 Introduction 3 2 Syntax 5 2.1 Formalities.............................. 5 2.2 Example language LooselyWhile.................

More information

Hardware description language (HDL)

Hardware description language (HDL) Hardware description language (HDL) A hardware description language (HDL) is a computer-based language that describes the hardware of digital systems in a textual form. It resembles an ordinary computer

More information

Chapter 9. Subprograms

Chapter 9. Subprograms Chapter 9 Subprograms Chapter 9 Topics Introduction Fundamentals of Subprograms Design Issues for Subprograms Local Referencing Environments Parameter-Passing Methods Parameters That Are Subprograms Calling

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler

More information

A macro- generator for ALGOL

A macro- generator for ALGOL A macro- generator for ALGOL byh.leroy Compagnie Bull-General Electric Paris, France INTRODUCfION The concept of macro-facility is ambiguous, when applied to higher level languages. For some authorsl,2,

More information

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines. Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of

More information

Review of the C Programming Language

Review of the C Programming Language Review of the C Programming Language Prof. James L. Frankel Harvard University Version of 11:55 AM 22-Apr-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights reserved. Reference Manual for the

More information

Computer Programming : C++

Computer Programming : C++ The Islamic University of Gaza Engineering Faculty Department of Computer Engineering Fall 2017 ECOM 2003 Muath i.alnabris Computer Programming : C++ Experiment #1 Basics Contents Structure of a program

More information

Topic IV. Block-structured procedural languages Algol and Pascal. References:

Topic IV. Block-structured procedural languages Algol and Pascal. References: References: Topic IV Block-structured procedural languages Algol and Pascal Chapters 5 and 7, of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapters 10( 2) and 11( 1) of Programming

More information

BoredGames Language Reference Manual A Language for Board Games. Brandon Kessler (bpk2107) and Kristen Wise (kew2132)

BoredGames Language Reference Manual A Language for Board Games. Brandon Kessler (bpk2107) and Kristen Wise (kew2132) BoredGames Language Reference Manual A Language for Board Games Brandon Kessler (bpk2107) and Kristen Wise (kew2132) 1 Table of Contents 1. Introduction... 4 2. Lexical Conventions... 4 2.A Comments...

More information

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e CS-3160 Concepts of Programming Languages Spring 2015 EXAM #1 (Chapters 1-6) Name: SCORES MC: /75 PROB #1: /15 PROB #2: /10 TOTAL: /100 Multiple Choice Responses Each multiple choice question in the separate

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design i About the Tutorial A compiler translates the codes written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target

More information

1 Scope. 2 Normative References. WORKING DRAFT ISO/IEC ISO/IEC 11404:xxxx WD3

1 Scope. 2 Normative References. WORKING DRAFT ISO/IEC ISO/IEC 11404:xxxx WD3 WORKING DRAFT ISO/IEC ISO/IEC 11404:xxxx WD3 Information technology Programming languages, their environments and system software interfaces Language-independent General purpose datatypes (GPD) [Working

More information

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309 A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48

More information

Review of the C Programming Language for Principles of Operating Systems

Review of the C Programming Language for Principles of Operating Systems Review of the C Programming Language for Principles of Operating Systems Prof. James L. Frankel Harvard University Version of 7:26 PM 4-Sep-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights

More information

The SPL Programming Language Reference Manual

The SPL Programming Language Reference Manual The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming

More information

9. Subprograms. 9.2 Fundamentals of Subprograms

9. Subprograms. 9.2 Fundamentals of Subprograms 9. Subprograms 9.2 Fundamentals of Subprograms General characteristics of subprograms A subprogram has a single entry point The caller is suspended during execution of the called subprogram Control always

More information

4. Structure of a C++ program

4. Structure of a C++ program 4.1 Basic Structure 4. Structure of a C++ program The best way to learn a programming language is by writing programs. Typically, the first program beginners write is a program called "Hello World", which

More information

OBJECT ORIENTED SIMULATION LANGUAGE. OOSimL Reference Manual - Part 1

OBJECT ORIENTED SIMULATION LANGUAGE. OOSimL Reference Manual - Part 1 OBJECT ORIENTED SIMULATION LANGUAGE OOSimL Reference Manual - Part 1 Technical Report TR-CSIS-OOPsimL-1 José M. Garrido Department of Computer Science Updated November 2014 College of Computing and Software

More information

Topic IV. Parameters. Chapter 5 of Programming languages: Concepts & constructs by R. Sethi (2ND EDITION). Addison-Wesley, 1996.

Topic IV. Parameters. Chapter 5 of Programming languages: Concepts & constructs by R. Sethi (2ND EDITION). Addison-Wesley, 1996. References: Topic IV Block-structured procedural languages Algol and Pascal Chapters 5 and 7, of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 5 of Programming languages: Concepts

More information

Semantic Analysis and Type Checking

Semantic Analysis and Type Checking Semantic Analysis and Type Checking The compilation process is driven by the syntactic structure of the program as discovered by the parser Semantic routines: interpret meaning of the program based on

More information

IT 374 C# and Applications/ IT695 C# Data Structures

IT 374 C# and Applications/ IT695 C# Data Structures IT 374 C# and Applications/ IT695 C# Data Structures Module 2.5: Methods A Deeper Look Xianrong (Shawn) Zheng Spring 2017 1 Outline static Methods, static Variables, and Class Math Methods with Multiple

More information

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Computer Science Journal of Moldova, vol.13, no.3(39), 2005 Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Alexandr Savinov Abstract In the paper we describe a

More information

ISO. International Organization for Standardization. ISO/IEC JTC 1/SC 32 Data Management and Interchange WG4 SQL/MM. Secretariat: USA (ANSI)

ISO. International Organization for Standardization. ISO/IEC JTC 1/SC 32 Data Management and Interchange WG4 SQL/MM. Secretariat: USA (ANSI) ISO/IEC JTC 1/SC 32 N 0736 ISO/IEC JTC 1/SC 32/WG 4 SQL/MM:VIE-006 January, 2002 ISO International Organization for Standardization ISO/IEC JTC 1/SC 32 Data Management and Interchange WG4 SQL/MM Secretariat:

More information

Data types for mcrl2

Data types for mcrl2 Data types for mcrl2 Aad Mathijssen April 5, 2018 We provide a syntax for the standard data types of the mcrl2 language. This syntax is intended to be a practical mix between standard mathematical notation

More information

COMPILER DESIGN. For COMPUTER SCIENCE

COMPILER DESIGN. For COMPUTER SCIENCE COMPILER DESIGN For COMPUTER SCIENCE . COMPILER DESIGN SYLLABUS Lexical analysis, parsing, syntax-directed translation. Runtime environments. Intermediate code generation. ANALYSIS OF GATE PAPERS Exam

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Extending SystemVerilog Data Types to Nets

Extending SystemVerilog Data Types to Nets Extending SystemVerilog Data Types to Nets Revision 3 This document proposes a set of SystemVerilog extensions to allow data types to be used to declare nets. The Overview section provides some rationale

More information

Chapter 2: Overview of C++

Chapter 2: Overview of C++ Chapter 2: Overview of C++ Problem Solving, Abstraction, and Design using C++ 6e by Frank L. Friedman and Elliot B. Koffman C++ Background Introduced by Bjarne Stroustrup of AT&T s Bell Laboratories in

More information

YOLOP Language Reference Manual

YOLOP Language Reference Manual YOLOP Language Reference Manual Sasha McIntosh, Jonathan Liu & Lisa Li sam2270, jl3516 and ll2768 1. Introduction YOLOP (Your Octothorpean Language for Optical Processing) is an image manipulation language

More information

SDMX self-learning package No. 3 Student book. SDMX-ML Messages

SDMX self-learning package No. 3 Student book. SDMX-ML Messages No. 3 Student book SDMX-ML Messages Produced by Eurostat, Directorate B: Statistical Methodologies and Tools Unit B-5: Statistical Information Technologies Last update of content February 2010 Version

More information

When do We Run a Compiler?

When do We Run a Compiler? When do We Run a Compiler? Prior to execution This is standard. We compile a program once, then use it repeatedly. At the start of each execution We can incorporate values known at the start of the run

More information

Sequential VHDL. Katarzyna Radecka. DSD COEN 313

Sequential VHDL. Katarzyna Radecka. DSD COEN 313 Sequential VHDL Katarzyna Radecka DSD COEN 313 kasiar@ece.concordia.ca Overview Process Sensitivity List Wait Statements If Statements Case Statements Loop Statements Three Styles of VHDL Behavioral Structural

More information

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3. The rules applicable to the various forms of name are described in this section clause 1.

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3. The rules applicable to the various forms of name are described in this section clause 1. LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 6 Names The rules applicable to the various forms of name are described in this section clause 1. 6.1 Names Names can denote declared entities,

More information

UNIT V SYSTEM SOFTWARE TOOLS

UNIT V SYSTEM SOFTWARE TOOLS 5.1 Text editors UNIT V SYSTEM SOFTWARE TOOLS A text editor is a type of program used for editing plain text files. Text editors are often provided with operating systems or software development packages,

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 04 Programs with IO and Loop We will now discuss the module 2,

More information

Microsoft Visual Basic 2005: Reloaded

Microsoft Visual Basic 2005: Reloaded Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 3 Variables, Constants, Methods, and Calculations Objectives After studying this chapter, you should be able to: Declare variables and named

More information

Chapter 9 Subprograms

Chapter 9 Subprograms Chapter 9 Subprograms We now explore the design of subprograms, including parameter-passing methods, local referencing environment, overloaded subprograms, generic subprograms, and the aliasing and problematic

More information

Spoke. Language Reference Manual* CS4118 PROGRAMMING LANGUAGES AND TRANSLATORS. William Yang Wang, Chia-che Tsai, Zhou Yu, Xin Chen 2010/11/03

Spoke. Language Reference Manual* CS4118 PROGRAMMING LANGUAGES AND TRANSLATORS. William Yang Wang, Chia-che Tsai, Zhou Yu, Xin Chen 2010/11/03 CS4118 PROGRAMMING LANGUAGES AND TRANSLATORS Spoke Language Reference Manual* William Yang Wang, Chia-che Tsai, Zhou Yu, Xin Chen 2010/11/03 (yw2347, ct2459, zy2147, xc2180)@columbia.edu Columbia University,

More information

A Fast Review of C Essentials Part I

A Fast Review of C Essentials Part I A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types

More information

ADVANTAGES. Via PL/SQL, all sorts of calculations can be done quickly and efficiently without use of Oracle engine.

ADVANTAGES. Via PL/SQL, all sorts of calculations can be done quickly and efficiently without use of Oracle engine. 1 PL/SQL INTRODUCTION SQL does not have procedural capabilities. SQL does not provide the programming techniques of condition checking, looping and branching that is required for data before permanent

More information

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are:

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are: LESSON 1 FUNDAMENTALS OF C The purpose of this lesson is to explain the fundamental elements of the C programming language. C like other languages has all alphabet and rules for putting together words

More information

CS 6353 Compiler Construction Project Assignments

CS 6353 Compiler Construction Project Assignments CS 6353 Compiler Construction Project Assignments In this project, you need to implement a compiler for a language defined in this handout. The programming language you need to use is C or C++ (and the

More information

COMP 110 Prasun Dewan 1

COMP 110 Prasun Dewan 1 2. Objects COMP 110 Prasun Dewan 1 Now that we have a model of how the computer works, we can address the business-at-hand: how do we program the computer. Using two simple, though realistic, examples,

More information

The Warhol Language Reference Manual

The Warhol Language Reference Manual The Warhol Language Reference Manual Martina Atabong maa2247 Charvinia Neblett cdn2118 Samuel Nnodim son2105 Catherine Wes ciw2109 Sarina Xie sx2166 Introduction Warhol is a functional and imperative programming

More information

CPS122 Lecture: From Python to Java last revised January 4, Objectives:

CPS122 Lecture: From Python to Java last revised January 4, Objectives: Objectives: CPS122 Lecture: From Python to Java last revised January 4, 2017 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.

More information

The Darwin Language Version 3d Department of Computing, Imperial College of Science, Technology and Medicine, 180 Queen s Gate, London SW7 2BZ, UK.

The Darwin Language Version 3d Department of Computing, Imperial College of Science, Technology and Medicine, 180 Queen s Gate, London SW7 2BZ, UK. Contents The Darwin Language Version 3d Department of Computing, Imperial College of Science, Technology and Medicine, 180 Queen s Gate, London SW7 2BZ, UK. Last Revised: Monday, 15 September 1997 PRELIMINARIES...

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

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Parser Tools: lex and yacc-style Parsing

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

More information