# easel LANGUAGE REFERENCE MANUAL

Size: px
Start display at page:

Transcription

1 easel LANGUAGE REFERENCE MANUAL Manager Danielle Crosswell dac2182 Language Guru Tyrus Cukavac thc2125 System Architect Yuan-Chao Chou yc3211 Tester Xiaofei Chen xc2364

2 Table of Contents 1. Introduction A Note on Notation and Conventions Keywords, Comments, and Whitespace Keywords Comments and Whitespace Identifiers and Data types Names Primitive data types Primitive Variables Primitive literals Integer Literals Floating Point Literals Boolean Literals Pix Literals Unary operators on numeric values Non-primitive data types Non-primitive literals Array and N-Ple Literals Function Literals Expressions Base Expressions Postfix Expressions: array indices, function evaluation, and unary operators Mathematical Expressions Equivalence and Comparison Logical Expressions Assignment Declarations Variable, Array, and N-Ple declaration Simple Variable Declarations Array Declarations N-Ple Declaration Scope Statements Condition and Loop Statements if statements if else statements Loop Statements for statements while statements do while statements Functions Function Declarations and Definitions Function Declaration without Definition Function Literals / Anonymous functions Invoking functions Built-in Functions

3 1. Introduction The primary purpose of easel is to create art using mathematics. Our language provides a means for programmers to visualize mathematical data and functions. The programmer is able to create visual representations using colors represented as pixels to have more aesthetically pleasing and easily understandable visualizations. The goal of easel is to create a simple interface for mathematical data and functions to be represented with the use of primitive data types and standard library functions. easel is capable of performing both basic and advanced mathematical expressions, such as trigonometric and logarithmic functions using built-in functions and simple operators. Because the creation of images is the central feature of our language, primitive data types include canvas and pix in addition to the array data type to ease the drawing of images. In easel, functions are the core of the language. They can be passed as parameters, returned as values, and declared anonymously A Note on Notation and Conventions Because of several syntactical parallels with C, much of the notation is similar to The C Reference Manual by Dennis M. Ritchie, particularly with regards to naming conventions and structures used in C s grammar. 2. Keywords, Comments, and Whitespace 2.1. Keywords The following are keywords reserved by the language and are not permitted as Names. bool false float int null pix string true else function if return void do for while draw drawout graph view red green blue 2.2. Comments and Whitespace Comments within a program are ignored and delineated by /*[text]*/ Hence, all comments must have an opening /* and a closing */ which is then skipped by the parser. There must be at least one space between tokens in order to separate them unless a separator (,,., or ; ) is between them. A given token is therefore not allowed to have 3

4 whitespace within it, lest it be interpreted as a different token. Otherwise, whitespace is ignored. 3. Identifiers and Data types 3.1. Names name -> [a-za-z_][0-9a-za-z_]* Names are used to identify variables of data types as well as functions. They are allowed to be a sequence of alphanumeric characters and underscores, excepting those that match with reserved keywords, which will be interpreted as keywords in accordance with the grammar rules to follow. A name must begin with a letter or underscore, and upper and lower-case letters are not considered equivalent 3.2. Primitive data types Primitive Variables Primitive variables can be of the following 4 data types: int 32-bit (or default machine architecture size) 2 s complement number values float 32-bit bool 1-bit true or false values. Can be represented using true or false keywords or simply 1 or 0 are acceptable pix 24-bit integer values. A pix stores a color value from Integers may be used anywhere floats can be used and conversion is automatic. That said, a float value cannot necessarily be used anywhere an int value is expected Primitive literals primitive-literal -> pix-literal primitive-literal -> boolean-literal primitive-literal -> float-literal primitive-literal -> integer-literal Primitive literals of the types listed above can take the following forms Integer Literals integer-literal -> integer-literal-hex integer-constant -> integer-literal-dec integer-literal-dec -> number-dec integer-literal-hex -> number-hex number-hex -> #[0-9a-f]+ number-dec -> [0-9]+ Thus, Integers can take the form of decimal notation or hex notation, which is noted by the # symbol followed by a number. 4

5 Floating Point Literals float-literal -> integer-literal. integer-literal float-literal-exponent float-literal ->. integer-literal float-literal ->. integer-literal float-literal-exponent float-literal -> integer-literal float-literal-exponent float-literal -> integer-literal float-literal-exponent -> e integer-literal float-literal-exponent -> e + integer-literal float-literal-exponent -> e - integer-literal Floating point constants in decimal form consist of an integer value followed by an optional decimal point and other integer value (representing the fraction) as well as an optional exponent. If the first integer value does not exist, then there must be a decimal point followed by an integer value. An exponent may follow either the first integer value, or the decimal and second integer value, or both. No hex values are permitted in this representation Boolean Literals boolean-literal -> true boolean-literal -> false Boolean literals are simply true or false and correspond to integer values of 1 or 0. Boolean values in general will be upgraded to integer or float status if placed into contexts of mathematical expressions Pix Literals pix-literal -> { integer-literal, integer-literal, integer-literal } Integers between 0 and (i.e. any unsigned 24-bit integer in either decimal or hex form) can be cast as pix literals. However, pixel literals are perhaps more easily expressed using list notation of three 8-bit integer values. For example: {255,0,0} or {#ff,#00,255}. Each item in the list represents a different color (Red, Green, and Blue) Unary operators on numeric values Integer and floating point values are able to be given specific signs, positive or negative, by preceding them with a unary operator + or - + numeric-expression - numeric-expression Additionally, pix and boolean values (including those arrived at from expressions) can utilize the unary operator! to flip their values (in the case of pixels, all of the bits are flipped). unary-expression ->! unary-expression Note that the not operator when performed on an integer!= 0 will return false and viceversa. 5

6 3.3. Non-primitive data types Variables storing a reference to a piece of data (rather than the data itself) and built using the above-mentioned primitive data types are created using the following types: array a data structure to store a sequence of adjacent values of a given data type. Arrays can be nested, that is n-matrices are possible. function a reference to a function instance. n-ple a data structure storing various values that are added together to memory as they are defined Non-primitive literals The compound types named above can also be found as literals within statements Array and N-Ple Literals Both arrays and n-ple s can be initialized using an n-ple list: n-ple-literal -> {parameter-list} An n-ple literal is essentially a list of values that make up the parameters of a function. This can include all mathematical expressions, variable names, function names, and anonymous functions as well Function Literals Functions are considered first-class objects (although not expressions) in easel and are therefore able to be referred to as literals in their own right: function-literal -> function type (function-parameter-list) return-region This is the same form as anonymous functions (see section 7.2). Function-literals can be used in many contexts, including as parameters to other functions or simply as statements to be executed immediately (both are discussed in the Statements section and the Functions sections respectively). 4. Expressions Expressions can take many forms but at their essence they return mathematical values Base Expressions base-expression -> primitive-literal base-expression -> name Base expression gives the value of primitive literals or variables of primitive data types. Additionally, any parenthesized expressions are evaluated first. base-expression -> ( base-expression ) 6

7 4.2. Postfix Expressions: array indices, function evaluation, and unary operators Once the base expression has been evaluated, any postfix operators are applied (including all of the unary operators). Of key importance for easel s functionality is the array subscript operator ( [ ] ): postfix-expression -> postfix-expression [ base-expression ] A key distinction between easel and other programming languages is that arrays are indexed using a Cartesian model, with an n-size array having a max index of n/2 and a minimum index - n/2. For convenience, arrays and matrices also have a. operator postfix-expression -> postfix-expression. This allows one to access an array s size (or total number of elements) and maximum and minimum index: postfix-expression.size postfix-expression.max postfix-expression.min n-ples have access to the size value, but are otherwise accessed using array notation starting from index 0. Pixel values may also use the dot operator: pixel_variable. color_key where color_key is any value of the type red, green, or blue. It returns an 8-bit integer value corresponding to the intensity of the color. pix x= # int z = x.red /* z=0 */ int y = x.blue /* y=68 or #44 in hex */ Moreover, named functions are called using parentheses and an optional parameter list: postfix-expression -> postfix-expression ( parameter-list ) postfix-expression -> postfix-expression ( ) Functions and their parameters are covered in more depth in the Function section. Other unary postfix-expressions include: postfix-expression -> postfix-expression ++ postfix-expression -> postfix-expression -- postfix-expression -> postfix-expression // postfix-expression -> postfix-expression ** postfix-expression -> postfix-expression ^^ Each of which is shorthand for a binary operation being performed on a variable with itself Mathematical Expressions Mathematical expressions are evaluated in the standard order of operations: parentheses (seen earlier), exponents, multiplication, division, addition, and subtraction. These operators are left-to-right associative as in standard mathematics. 7

9 4.5. Logical Expressions Boolean values can be evaluated using the logical operators AND ( && ) and OR ( ): logical-and-expression -> logical-and-expression && equality-expression logical-or-expression -> logical-or-expression logical-andexpression && is given precedence. In the case of numbers as previously described, all values not equal to 0 are considered TRUE Boolean values and all values equal to 0 are considered FALSE Assignment An assignment for base expressions occurs in the following manner: assignment-expression -> unary-expression = logical-or-expression A variable can be set to the value of any of the mathematical expressions. Additionally, arrays and n-ples can be assigned values using n-ple literals: assignment-expression -> unary-expression = n-ple-literal Because n-ple literals take parameter-list values, they can also include nested n-ple literals. So an n-matrix can be defined using n-dimensional n-ple literals as well. 5. Declarations 5.1 Variable, Array, and N-Ple declaration Simple Variable Declarations type name; int var; /* declares variable of type int called var */ Primitive variables are declared simply by providing the variable s type followed by its name. Declaring a variable will not automatically allocate space for the variable-this only occurs for simple variables during the definition of the variable. Definition can happen within a separate statement, or at the same time as declaration. int var = 5; is valid syntax and will allocate space and assign a value for the variable Array Declarations Arrays are declared using a type followed by the name and bracket notation: compound declaration[expression] compound declaration -> type name int array_example[3+5] float matrix_example[8][3.2+8] 9

10 Values within brackets are numerical expressions but are cast as integers, rounded down if floating-point, by the compiler. An array must know its size at declaration in order for the declaration to be valid. As with simple variables, space is not allocated for the array until at least one value of the array has been defined. In most cases, setting an array equal to an empty nple will suffice, as in: array={} matrix={} is acceptable. All values found within the array or matrix will be initialized to N-Ple Declaration nple n; /* declares a new n-ple n */ The n-ple is then defined using an n-ple literal, which may or may not be the empty set: n = {} 5.2. Scope Scope is best explained with a brief description of program structure. A given program consists of the global space, wherein any statement can be executed, or a function can be defined. The scope of a variable in easel is defined to be within the function in which it is declared. Regions within control or loop statements have access to all other variables declared within the same function. The global space is a relative no-man s-land of variables that can only be used by functions to whom they are passed as arguments. They are otherwise inaccessible to internally defined or called functions. 6. Statements A basic statement is of the form: declaration ; expression ; anonymous-function ; A general statement can be a declaration (which may include an expression), an expression by itself, or, should an anonymous function (see section 7.3) be made as a statement, it will be executed immediately. In addition to the general statements above, easel features both control statements and loop statements for iterative processes Condition and Loop Statements statement -> condition-statement; statement -> loop-statement; 10

11 The following types of control statements make use of a list of other statements called a region: region -> { statement-list } Regions are defined as having their own scope, and any variables declared within the region will be deleted upon completion of the execution of the statement list. They will, however, have access to any variables declared within their calling function. Because regions are themselves lists of statements, nesting either the control or loop statements defined below is perfectly acceptable. Note that both condition and loop statements must end in a semi-colon if statements if ( expression ) region ; If statements provide a condition which evaluates to true or false. If true, a sequence of statements in a region (bracketed on the left and right sides) will execute. If the expression is false, the region is skipped and the next statement will proceed to execute if else statements if ( expression ) region else region ; If-else statements offer an additional path following evaluation of the expression: if an expression evaluates to true, the first region is executed and the second is ignored. If the expression evaluates to false, the second region is executed and the first is ignored. Following either of these two events, the next statement following the if-else statement will proceed to execute Loop Statements The following statements execute repeatedly until a given condition evaluates to false for statements for ( expression ; expression ; expression ) region For statements begin with an expression (meant to declare and initialize an iterator variable), run a particular region of statements, evaluate another expression (meant to be a form of iterator) and then check to see if a given condition is true (usually if the iterator has reached a certain threshold) while statements while ( expression ) region While statements first check to see if a given expression evaluates to true and if so, executes the region. The expression is then evaluated at the conclusion of every iteration and if it continues to be true, the region continues to be executed. When the expression evaluates to false, the region is skipped and the following statement is executed. 11

12 do while statements loop-statement -> do region while ( expression ) Do-while statements immediately execute a given region. The expression is then evaluated at the conclusion of every iteration and if it holds true, the region continues to be executed. When the expression evaluates to false, the region is skipped and the following statement is executed. 7. Functions Functions form the foundation of easel s functionality. A few important things to note: 1. Elements are passed by reference not by value. This is meant to encourage the use of functions within easel as opposed to purely sequential programming, as a function will not otherwise have access to any outside variables. 2. Functions may return a void data type, but void is not a valid data type for any other value. 3. Functions may be passed as arguments to other functions, either as a function literal / anonymous function or simply as a named entity. 4. Functions may be called recursively, and can call any other functions defined in the global scope. 5. Functions may be overloaded. Multiple functions may have the same name provided that the function declaration (i.e. return type, parameters) is different. 6. If two functions within the global scope have the same name and declaration, the compiler will throw an error Function Declarations and Definitions When declared as part of the normal statement flow of a program, functions must be defined at declaration. function -> function-declaration return-region Where a function declaration consists of: function type name (function-parameter-list) And a function-parameter-list is defined as: function-parameter-list -> function-parameter-list, declaration function-parameter-list -> declaration Function parameters are essentially composed of a list of declarations, including declarations of other functions. The return-region, which is the main element of a function, follows the form: { statement-list return expression ; } A return region is a bracketed list of statements followed by a return expression Function Declaration without Definition A function can only be declared without definition when the function itself is being passed as an argument to another function. This declaration follows from below: function type name (function-parameter-list) 12

13 function void my_function (int x, int y, function int operate(int w, int z)); The operate function is thus declared as a parameter. Any function passed as the operate parameter must have a matching return type and argument list or the program will be rejected by the compiler Function Literals / Anonymous functions Functions may also take the form of function literals. They follow the format: function type (function-parameter-list) return-region function pix (pix x) {return!x} These functions differ from the standard form in that they are not named Invoking functions Functions can be called anywhere during statement flow. A function is called by using its name and passing it parameters. postfix-expression ( parameter-list ) function int add (int x, int y){return x+y} pix x = add(3,2) /* x=5 */ To pass another function to a function and execute, a function signature must be provided as a parameter: type name (parameter-list) function int im_a_parameter(int u, int v)={return u+v} my_function(5, 2, int im_a_parameter(int, int)); /* value=7 */ Both the return type as well as the parameters must be provided in order to correctly identify the function being passed. If one of these values is missing or the function has not been defined, then the compiler will throw an error message. If an anonymous function literal is written as a statement (with the requisite semicolon) it is an anonymous function and will be invoked immediately as part of normal execution. In this instance, the anonymous function must have an expression rather than declaration in its argument-list. (It uses the parameter-list reduction from the example above rather than the function-parameter-list used in section 7.2). int x=18; function pix(x) {return x-2}; /* Returns a pixel with value 16 */ 7.4. Built-in Functions Whereas many other languages have some mechanism of printing strings, easel s built-in method of output is drawing a canvas to the monitor. 13

14 The signature of the function responsible for the drawing is: draw(pix name[][], int x, int y); The argument is a 2-dimensional pixel matrix as well as an x and y value that determines where the top left corner of the canvas window is placed. An easel program is ultimately about creating this matrix of pixels using various functions or coding prowess to create a visual representation on screen. In the same vein, a filename may be provided to easel as a command line argument via stdin on unix platforms that will allow a user to use the drawout function as well as or instead of the draw function. drawout(pix name[][]); For an easel file drawout.es consisting of: pix canvas[100][100] = {} drawout(canvas); Calling the compiled program drawout via the terminal and feeding it the desired filename would create a jpeg file consisting of a 100 x 100 white canvas of pixels. \$ echo whitecanvas.jpeg./drawout This will output the drawing as a jpg file for future use elsewhere. Out of the box, easel also offers a number of mathematical functions. These include: float tan(float x) float sin(float x) float cos(float x) float log(float base, float value) which allow the user to calculate more complicated geometric functions than the standard arithmetic operators. Finally, easel has a random number generator, which generates a floating point value between 0 and 1 inclusive. This value can be multiplied, added, or subtracted to in order to provide a random value within a desired range. float rand() 14

### easel Manager Danielle Crosswell dac2182 Language Guru Tyrus Cukavac thc2125 System Architect Yuan-Chao Chou yc3211 Tester Xiaofei Chen xc2364

easel Manager Danielle Crosswell dac2182 Language Guru Tyrus Cukavac thc2125 System Architect Yuan-Chao Chou yc3211 Tester Xiaofei Chen xc2364 INTRODUCTION & MOTIVATION To most people mathematics is that

### JME Language Reference Manual

JME Language Reference Manual 1 Introduction JME (pronounced jay+me) is a lightweight language that allows programmers to easily perform statistic computations on tabular data as part of data analysis.

### 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

### MATVEC: MATRIX-VECTOR COMPUTATION LANGUAGE REFERENCE MANUAL. John C. Murphy jcm2105 Programming Languages and Translators Professor Stephen Edwards

MATVEC: MATRIX-VECTOR COMPUTATION LANGUAGE REFERENCE MANUAL John C. Murphy jcm2105 Programming Languages and Translators Professor Stephen Edwards Language Reference Manual Introduction The purpose of

### Contents. Jairo Pava COMS W4115 June 28, 2013 LEARN: Language Reference Manual

Jairo Pava COMS W4115 June 28, 2013 LEARN: Language Reference Manual Contents 1 Introduction...2 2 Lexical Conventions...2 3 Types...3 4 Syntax...3 5 Expressions...4 6 Declarations...8 7 Statements...9

### Operators. Java operators are classified into three categories:

Operators Operators are symbols that perform arithmetic and logical operations on operands and provide a meaningful result. Operands are data values (variables or constants) which are involved in operations.

### 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

### 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

### VLC : Language Reference Manual

VLC : Language Reference Manual Table Of Contents 1. Introduction 2. Types and Declarations 2a. Primitives 2b. Non-primitives - Strings - Arrays 3. Lexical conventions 3a. Whitespace 3b. Comments 3c. Identifiers

### Object oriented programming. Instructor: Masoud Asghari Web page: Ch: 3

Object oriented programming Instructor: Masoud Asghari Web page: http://www.masses.ir/lectures/oops2017sut Ch: 3 1 In this slide We follow: https://docs.oracle.com/javase/tutorial/index.html Trail: Learning

### Chapter 2 Working with Data Types and Operators

JavaScript, Fourth Edition 2-1 Chapter 2 Working with Data Types and Operators At a Glance Instructor s Manual Table of Contents Overview Objectives Teaching Tips Quick Quizzes Class Discussion Topics

### 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

### \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

### Mirage. Language Reference Manual. Image drawn using Mirage 1.1. Columbia University COMS W4115 Programming Languages and Translators Fall 2006

Mirage Language Reference Manual Image drawn using Mirage 1.1 Columbia University COMS W4115 Programming Languages and Translators Fall 2006 Prof. Stephen Edwards Team Members: Abhilash I ai2160@columbia.edu

### Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

### 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

### 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

### 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

### 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

### DaMPL. Language Reference Manual. Henrique Grando

DaMPL Language Reference Manual Bernardo Abreu Felipe Rocha Henrique Grando Hugo Sousa bd2440 flt2107 hp2409 ha2398 Contents 1. Getting Started... 4 2. Syntax Notations... 4 3. Lexical Conventions... 4

### CMAT Language - Language Reference Manual COMS 4115

CMAT Language - Language Reference Manual COMS 4115 Language Guru: Michael Berkowitz (meb2235) Project Manager: Frank Cabada (fc2452) System Architect: Marissa Ojeda (mgo2111) Tester: Daniel Rojas (dhr2119)

### 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...

### Ordinary Differential Equation Solver Language (ODESL) Reference Manual

Ordinary Differential Equation Solver Language (ODESL) Reference Manual Rui Chen 11/03/2010 1. Introduction ODESL is a computer language specifically designed to solve ordinary differential equations (ODE

### SMPL - A Simplified Modeling Language for Mathematical Programming

SMPL - A Simplified Modeling Language for Mathematical Programming Mihály Csaba Markót November 3, 2008 1 Purpose and Scope This working paper describes SMPL, an initiative of a Simplified Modeling Language

### 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

### Language Reference Manual

ALACS Language Reference Manual Manager: Gabriel Lopez (gal2129) Language Guru: Gabriel Kramer-Garcia (glk2110) System Architect: Candace Johnson (crj2121) Tester: Terence Jacobs (tj2316) Table of Contents

### GraphQuil Language Reference Manual COMS W4115

GraphQuil Language Reference Manual COMS W4115 Steven Weiner (Systems Architect), Jon Paul (Manager), John Heizelman (Language Guru), Gemma Ragozzine (Tester) Chapter 1 - Introduction Chapter 2 - Types

### XQ: An XML Query Language Language Reference Manual

XQ: An XML Query Language Language Reference Manual Kin Ng kn2006@columbia.edu 1. Introduction XQ is a query language for XML documents. This language enables programmers to express queries in a few simple

### 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)

### 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

### 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

### Petros: A Multi-purpose Text File Manipulation Language

Petros: A Multi-purpose Text File Manipulation Language Language Reference Manual Joseph Sherrick js2778@columbia.edu June 20, 2008 Table of Contents 1 Introduction...................................................

### egrapher Language Reference Manual

egrapher Language Reference Manual Long Long: ll3078@columbia.edu Xinli Jia: xj2191@columbia.edu Jiefu Ying: jy2799@columbia.edu Linnan Wang: lw2645@columbia.edu Darren Chen: dsc2155@columbia.edu 1. Introduction

### The pixelman Language Reference Manual. Anthony Chan, Teresa Choe, Gabriel Kramer-Garcia, Brian Tsau

The pixelman Language Reference Manual Anthony Chan, Teresa Choe, Gabriel Kramer-Garcia, Brian Tsau October 2017 Contents 1 Introduction 2 2 Lexical Conventions 2 2.1 Comments..........................................

### GOLD Language Reference Manual

GOLD Language Reference Manual Language Guru: Timothy E. Chung (tec2123) System Architect: Aidan Rivera (ar3441) Manager: Zeke Reyna (eer2138) Tester: Dennis Guzman (drg2156) October 16th, 2017 1 Introduction

### 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

### M/s. Managing distributed workloads. Language Reference Manual. Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567)

1 M/s Managing distributed workloads Language Reference Manual Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567) Table of Contents 1. Introduction 2. Lexical elements 2.1 Comments 2.2

### Learning Language. Reference Manual. George Liao (gkl2104) Joseanibal Colon Ramos (jc2373) Stephen Robinson (sar2120) Huabiao Xu(hx2104)

Learning Language Reference Manual 1 George Liao (gkl2104) Joseanibal Colon Ramos (jc2373) Stephen Robinson (sar2120) Huabiao Xu(hx2104) A. Introduction Learning Language is a programming language designed

### GeoCode Language Reference Manual

GeoCode Language Reference Manual Contents 1 Introduction... 3 2 Lexical Elements... 3 2.1 Identifiers... 3 2.2 Keywords... 3 2.3 Literals... 3 2.4 Line Structure... 4 2.5 Indentation... 4 2.6 Whitespace...

### INTRODUCTION 1 AND REVIEW

INTRODUTION 1 AND REVIEW hapter SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Programming: Advanced Objectives You will learn: Program structure. Program statements. Datatypes. Pointers. Arrays. Structures.

### Language Reference Manual

Programming Languages and Translators Language Reference Manual ART: Animation Rendering Tool Brett Jervey - baj2125 Gedion Metaferia - gym2103 Natan Kibret - nfk2105 Soul Joshi - srj2120 October 26, 2016

### Sprite an animation manipulation language Language Reference Manual

Sprite an animation manipulation language Language Reference Manual Team Leader Dave Smith Team Members Dan Benamy John Morales Monica Ranadive Table of Contents A. Introduction...3 B. Lexical Conventions...3

### 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

### Angela Z: A Language that facilitate the Matrix wise operations Language Reference Manual

Angela Z: A Language that facilitate the Matrix wise operations Language Reference Manual Contents Fei Liu, Mengdi Zhang, Taikun Liu, Jiayi Yan 1. Language definition 3 1.1. Usage 3 1.2. What special feature

### MR Language Reference Manual. Siyang Dai (sd2694) Jinxiong Tan (jt2649) Zhi Zhang (zz2219) Zeyang Yu (zy2156) Shuai Yuan (sy2420)

MR Language Reference Manual Siyang Dai (sd2694) Jinxiong Tan (jt2649) Zhi Zhang (zz2219) Zeyang Yu (zy2156) Shuai Yuan (sy2420) 1 MR Language Reference Manual 1. Introduction 1.1 Concept of MapReduce

### 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

### SSOL Language Reference Manual

SSOL Language Reference Manual Madeleine Tipp Jeevan Farias Daniel Mesko mrt2148 jtf2126 dpm2153 Manager Language Guru System Architect October 15, 2018 Contents 1 Lexical Conventions 2 1.1 Identifiers...............................................

### SECTION II: LANGUAGE BASICS

Chapter 5 SECTION II: LANGUAGE BASICS Operators Chapter 04: Basic Fundamentals demonstrated declaring and initializing variables. This chapter depicts how to do something with them, using operators. Operators

### Chapter 3: Operators, Expressions and Type Conversion

101 Chapter 3 Operators, Expressions and Type Conversion Chapter 3: Operators, Expressions and Type Conversion Objectives To use basic arithmetic operators. To use increment and decrement operators. To

### L-System Fractal Generator: Language Reference Manual

L-System Fractal Generator: Language Reference Manual Michael Eng, Jervis Muindi, Timothy Sun Contents 1 Program Definition 3 2 Lexical Conventions 3 2.1 Comments...............................................

### GridLang: Grid Based Game Development Language Language Reference Manual. Programming Language and Translators - Spring 2017 Prof.

GridLang: Grid Based Game Development Language Language Reference Manual Programming Language and Translators - Spring 2017 Prof. Stephen Edwards Akshay Nagpal Dhruv Shekhawat Parth Panchmatia Sagar Damani

### 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

### C Language Part 1 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee

C Language Part 1 (Minor modifications by the instructor) References C for Python Programmers, by Carl Burch, 2011. http://www.toves.org/books/cpy/ The C Programming Language. 2nd ed., Kernighan, Brian,

### ASML Language Reference Manual

ASML Language Reference Manual Tim Favorite (tuf1) & Frank Smith (fas2114) - Team SoundHammer Columbia University COMS W4115 - Programming Languages & Translators 1. Introduction The purpose of Atomic

### Operators and Expressions

Operators and Expressions Conversions. Widening and Narrowing Primitive Conversions Widening and Narrowing Reference Conversions Conversions up the type hierarchy are called widening reference conversions

### ARG! Language Reference Manual

ARG! Language Reference Manual Ryan Eagan, Mike Goldin, River Keefer, Shivangi Saxena 1. Introduction ARG is a language to be used to make programming a less frustrating experience. It is similar to C

### CLIP - A Crytographic Language with Irritating Parentheses

CLIP - A Crytographic Language with Irritating Parentheses Author: Duan Wei wd2114@columbia.edu Yi-Hsiu Chen yc2796@columbia.edu Instructor: Prof. Stephen A. Edwards July 24, 2013 Contents 1 Introduction

### PieNum Language Reference Manual

PieNum Language Reference Manual October 2017 Hadiah Venner (hkv2001) Hana Fusman (hbf2113) Ogochukwu Nwodoh( ocn2000) Index Introduction 1. Lexical Convention 1.1. Comments 1.2. Identifiers 1.3. Keywords

### TED Language Reference Manual

1 TED Language Reference Manual Theodore Ahlfeld(twa2108), Konstantin Itskov(koi2104) Matthew Haigh(mlh2196), Gideon Mendels(gm2597) Preface 1. Lexical Elements 1.1 Identifiers 1.2 Keywords 1.3 Constants

### Objects and Types. COMS W1007 Introduction to Computer Science. Christopher Conway 29 May 2003

Objects and Types COMS W1007 Introduction to Computer Science Christopher Conway 29 May 2003 Java Programs A Java program contains at least one class definition. public class Hello { public static void

### A Java program contains at least one class definition.

Java Programs Identifiers Objects and Types COMS W1007 Introduction to Computer Science Christopher Conway 29 May 2003 A Java program contains at least one class definition. public class Hello { public

### PLATO Language Reference Manual

PLATO Language Reference Manual Daniel Perlmutter (dap2163) Project Leader Yasser Abhoudkhil (ya2282) Joaquín Ruales (jar2262) 1) Introduction This document describes the PLATO programming language. There

### String Computation Program

String Computation Program Reference Manual Scott Pender scp2135@columbia.edu COMS4115 Fall 2012 10/31/2012 1 Lexical Conventions There are four kinds of tokens: identifiers, keywords, expression operators,

### Crayon (.cry) Language Reference Manual. Naman Agrawal (na2603) Vaidehi Dalmia (vd2302) Ganesh Ravichandran (gr2483) David Smart (ds3361)

Crayon (.cry) Language Reference Manual Naman Agrawal (na2603) Vaidehi Dalmia (vd2302) Ganesh Ravichandran (gr2483) David Smart (ds3361) 1 Lexical Elements 1.1 Identifiers Identifiers are strings used

### 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

### Java+- Language Reference Manual

Fall 2016 COMS4115 Programming Languages & Translators Java+- Language Reference Manual Authors Ashley Daguanno (ad3079) - Manager Anna Wen (aw2802) - Tester Tin Nilar Hlaing (th2520) - Systems Architect

### 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

### GAWK Language Reference Manual

GAWK Language Reference Manual Albert Cui, Karen Nan, Mei-Vern Then, & Michael Raimi So good, you re gonna GAWK. 1.0 Introduction This manual describes the GAWK language and is meant to be used as a reliable

### COLOGO A Graph Language Reference Manual

COLOGO A Graph Language Reference Manual Advisor: Stephen A. Edwards Shen Wang (sw2613@columbia.edu) Lixing Dong (ld2505@columbia.edu) Siyuan Lu (sl3352@columbia.edu) Chao Song (cs2994@columbia.edu) Zhou

### Appendix. Grammar. A.1 Introduction. A.2 Keywords. There is no worse danger for a teacher than to teach words instead of things.

A Appendix Grammar There is no worse danger for a teacher than to teach words instead of things. Marc Block Introduction keywords lexical conventions programs expressions statements declarations declarators

### Hava Language Technical Reference

Hava Language Technical Reference April 25, 2009 (draft) Steven T. Hackman, Loren K. Platzman H. Milton Stewart School of Industrial and Systems Engineering Georgia Institute of Technology Hava is a numerical

### CHIL CSS HTML Integrated Language

CHIL CSS HTML Integrated Language Programming Languages and Translators Fall 2013 Authors: Gil Chen Zion gc2466 Ami Kumar ak3284 Annania Melaku amm2324 Isaac White iaw2105 Professor: Prof. Stephen A. Edwards

### Objectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments

Basics Objectives Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments 2 Class Keyword class used to define new type specify

### Features of C. Portable Procedural / Modular Structured Language Statically typed Middle level language

1 History C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. C was originally first implemented on the DEC

### 3. Java - Language Constructs I

Educational Objectives 3. Java - Language Constructs I Names and Identifiers, Variables, Assignments, Constants, Datatypes, Operations, Evaluation of Expressions, Type Conversions You know the basic blocks

### Programming Language Basics

Programming Language Basics Lecture Outline & Notes Overview 1. History & Background 2. Basic Program structure a. How an operating system runs a program i. Machine code ii. OS- specific commands to setup

### LOON. Language Reference Manual THE LANGUAGE OF OBJECT NOTATION. Kyle Hughes, Jack Ricci, Chelci Houston-Borroughs, Niles Christensen, Habin Lee

LOON THE LANGUAGE OF OBJECT NOTATION Language Reference Manual Kyle Hughes, Jack Ricci, Chelci Houston-Borroughs, Niles Christensen, Habin Lee October 2017 1 Contents 1 Introduction 3 2 Types 4 2.1 JSON............................................

### Twister: Language Reference Manual

Twister: Language Reference Manual Manager: Anand Sundaram (as5209) Language Guru: Arushi Gupta (ag3309) System Architect: Annalise Mariottini (aim2120) Tester: Chuan Tian (ct2698) February 23, 2017 Contents

### Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators

Operators Overview Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators Operands and Operators Mathematical or logical relationships

### 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,

### CHAD Language Reference Manual

CHAD Language Reference Manual INTRODUCTION The CHAD programming language is a limited purpose programming language designed to allow teachers and students to quickly code algorithms involving arrays,

### Decaf Language Reference

Decaf Language Reference Mike Lam, James Madison University Fall 2016 1 Introduction Decaf is an imperative language similar to Java or C, but is greatly simplified compared to those languages. It will

### XC Specification. 1 Lexical Conventions. 1.1 Tokens. The specification given in this document describes version 1.0 of XC.

XC Specification IN THIS DOCUMENT Lexical Conventions Syntax Notation Meaning of Identifiers Objects and Lvalues Conversions Expressions Declarations Statements External Declarations Scope and Linkage

### 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

### 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

### 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

### B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University

Unit 1 Programming Language and Overview of C 1. State whether the following statements are true or false. a. Every line in a C program should end with a semicolon. b. In C language lowercase letters are

### 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

### Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur

Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur Operators and Expressions 8/24/2012 Dept of CS&E 2 Arithmetic operators Relational operators Logical operators

### Fundamental of Programming (C)

Borrowed from lecturer notes by Omid Jafarinezhad Fundamental of Programming (C) Lecturer: Vahid Khodabakhshi Lecture 3 Constants, Variables, Data Types, And Operations Department of Computer Engineering

### Department of Computer Science COMP The Programming Competency Test

The Australian National University Faculty of Engineering & Information Technology Department of Computer Science COMP1120-2003-01 The Programming Competency Test 1 Introduction The purpose of COMP1120

### CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

CS5000: Foundations of Programming Mingon Kang, PhD Computer Science, Kennesaw State University Overview of Source Code Components Comments Library declaration Classes Functions Variables Comments Can

### C++ Programming: From Problem Analysis to Program Design, Third Edition

C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 2: Basic Elements of C++ Objectives (continued) Become familiar with the use of increment and decrement operators Examine

### Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal Lesson Goals Understand the basic constructs of a Java Program Understand how to use basic identifiers Understand simple Java data types

### Programming Lecture 3

Programming Lecture 3 Expressions (Chapter 3) Primitive types Aside: Context Free Grammars Constants, variables Identifiers Variable declarations Arithmetic expressions Operator precedence Assignment statements

### And Parallelism. Parallelism in Prolog. OR Parallelism

Parallelism in Prolog And Parallelism One reason that Prolog is of interest to computer scientists is that its search mechanism lends itself to parallel evaluation. In fact, it supports two different kinds

### VENTURE. Section 1. Lexical Elements. 1.1 Identifiers. 1.2 Keywords. 1.3 Literals

VENTURE COMS 4115 - Language Reference Manual Zach Adler (zpa2001), Ben Carlin (bc2620), Naina Sahrawat (ns3001), James Sands (js4597) Section 1. Lexical Elements 1.1 Identifiers An identifier in VENTURE

### CSCI 171 Chapter Outlines

Contents CSCI 171 Chapter 1 Overview... 2 CSCI 171 Chapter 2 Programming Components... 3 CSCI 171 Chapter 3 (Sections 1 4) Selection Structures... 5 CSCI 171 Chapter 3 (Sections 5 & 6) Iteration Structures