M (usic) arma (dillo)(koo) lade TM

Size: px
Start display at page:

Download "M (usic) arma (dillo)(koo) lade TM"

Transcription

1 M (usic) arma (dillo)(koo) lade TM A Music Creation Language Savvas Petridis (sdp2137) Language Guru Uzo Amuzie (ua2144) Manager Cathy Jin (ckj2111) Tester Raphael Norwitz (rsn2117) System Architect

2 1 Tabl e of Cont ents : Introduction. 2 Lexical Conventions.. 3 Data Types... 6 Lists... 9 Operator Usage 10 Reserved Words.. 13 Other Expressions Funktions.. 17 Grammar.. 19

3 2 Intr oduction : Marm alade is a matrix-based musical programming language. Why Matrices: Other musical programming languages use clunky object oriented syntax or are totally cryptic. We believe that all one needs to efficiently write concise and readable music are integers, notes, time signatures, instruments, functions, lists, and lists of lists. Why Marmalade : This list structure, along with intuitive operators, clear control flow, and a spartan standard library, gives the composer the freedom to write what they want without compromise. Marmalade is the logical choice of language for anyone, with or without a sophisticated musical background, to enjoy the composition process, provided they are willing to look at music in a slightly different way. High Level Overview : As mentioned the language will contain integers, notes, time-signatures, and instrument data-types. Any list of notes will be treated as analogous to a measure. All notes in a single list will be played with the same time signature, which is defined by the user along with a set of functions which will be applied to the list. A list of such lists (a 2-dimensional matrix) will be treated as a phrase. Successive lists will be played in order throughout the duration of a piece and a simple syntax will be defined for breaks to avoid gratuitous rest notes. A particular set of notes/sounds, or an instrument, will be associated with every phrase. Thus you can see a phrase as all the notes played by an instrument in a song. Instead of an instrument, though, it may be better to see it as analogous to the left hand on a piano, as there can be multiple phrases with the same instruments. A 3 dimensional array of phrases will constitute of all parts of all instruments and thus represent a complete song. An integer will be associated with a song to flag the Beats-per-Minute (BPM) so operations which have to do with time can be performed on a given song. Marmalade works as follows:

4 3 Lexi cal Conv entions : Comments : Comments serve as a sort of in-code documentation. Comments are ignored by the compiler and have no effect on the behavior of programs. There are is only one style of comments in marmalade: multi-line. Multi-line comments are initiated with a slash and star character (/*) and terminated with a star and slash character (*/); the compiler ignores all content between the indicators. This type of comment does not nest. /* this is a comment */ Tokens : In marmalade, a token is a string of one or more characters consisting of letters, digits, or underscores. Marmalade has 5 kinds of tokens: 1. Identifiers 2. Keywords 3. Constants 4. Operators 5. Lists Identifier Tokens : An identifier consists of a sequence of letters and digits. An identifier must start with a letter. A new valid identifier cannot be the same as reserved keywords or pitch literals (see Keywords and Literals). An identifier has no strict limit on length and can be composed of the following characters: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ letter [ a - z A - Z ] digit [ 0-9 ] underscore _ identifier letter (letter digit underscore)*

5 4 Keyword Tokens : funk return if/fi else elif while play print output_midi Constant tokens : note timesig instrument Operator tokens : + - * / = $ << [] & == Notes Everything between the lbrace and rbrace tokens immediately after token will be interpreted as a special expression (see Other Expressions). $: Everything between the lparen and rparen tokens immediately after a $ token will be interpreted as a time-signature, Instrument, or BPM indicator, depending on the contents. If a $ operator immediately precedes a list token, the value flagged by the $ will be applied to each element in the list. Lists : List tokens are stored without commas. list lbracket note* rbracket Whitespace : Whitespace consists of any sequence of blank and tab characters. Whitespace is used to separate tokens and format programs. All whitespace is ignored by the marmalade compiler. As a result, indentations are not significant in marmalade.

6 5 Data Type s : Integer: An integer declaration consists of a variable name, an assignment operator and an optional sign and any number of operators. Grammar : Example Declarations : i = 5; i = -5; Declaration Grammar : sign + - digit [ 0-9 ]* Integer (sign)?(integer)+ var_name letter(letter Integer - _ )* int_dec var_name = Integer ; Any arithmetic operators can be applied to integers as in any other programming language. Note: A note consists of a positive integer, a period and a character indicating the note value. Integer Grammar : digit [ 0-9 ]* Integer (integer)+ Type_val [ s, e, q, h, w ] Note (Integer)+. Type_val The positive integer represents the specific note to be played and the type indicates the note value. For example: 44 C4 (the 4th C on a piano

7 6 The character after the period represents the note value, or length that the note is played. Example Declarations : n_0 = 44.s n_1 = 44.e; n_2 = 44.q; n_3 = 54.h; n_4 = 68.w; Declaration Grammar : *.s sixteenth note *.e eighth note *.q quarter note *.h half note *.w whole note note_dec var_name = Note ; Time-Signature: A time-signature consists of two integers indicating how a sets of notes should be played. Time-Signature Grammar : Example Declaration : t_sig_0 = $(4:4); t_sig_1 = $(6:8); Declaration Grammar : time_sig $ ( digit : digit ) time_sig_dec var_name = time_sig ; Instrument: An instrument is a set of capital letters which indicate what set of sounds a given set of notes will map to.

8 7 Instrument Grammar : Instrument Declaration : capital_letter [ A - Z ] Instrument capital_letter* Instrument_dec var_name = Instrument ; Tempo: The tempo of a song is defined as the speed that a passage of music should be played. In the case of this language, tempo must be a positive integer that can only be applied to a song. Tempo Grammar : Example Declaration : tmp = $(72); Declaration Grammar : tempo $ ( digit ) digit [ 0-9 ]* tempo_dec var_name = tempo ;

9 8 List s: Normal Lists : In Marmalade, lists are sole container for storing sets of data. Lists are of variable length and all items in a list must be of the same type. If the list is a matrix of other lists, all sublists must be of one dimension less than that of the original matrix. Lists for integers, time-signatures and instruments operate much as they do in other languages. See Oper ator Usag e for more specifics. Measures : Lists of notes in Marmalade are treated as measures. Given a list of notes: M_0=[44.q, 64.h, 89.q]; A time-signature is automatically inferred from the note-types in the list. In this case, with 4 beats, this list of notes will be taken as a measure associated with a $(4:4) time signature. There are cases, though, where the same notes, can be associated with different time signatures. Say we had: M_1=[36.q, 50.h]; The time-signature for L_1 could be either $(3:4) or $(6:8). In this case, the language would chose the time-signature with the lowest denominator $(3:4). The programmer can also define L_2 as follows: M_2=$(6:8) [36.q, 50.h]; in which case L_2 has the same notes as L_1 but with a time signature of $(6:8). The programmer chooses to define L_3 as: M_3=$(4:4) L_1; The compiler will see that L_0 only has 3 beats and thus cannot be played in a $(4:4) time signature, and throw an error.

10 9 Phrases : A Phrase is a list of measures to be played in succession from first to the last element. Each phrase is associated with a specified instrument. For instance: P_0=[]<<@{M_( 0-3 )}; * This is the same as saying P_0 holds measures M_1 to M_4 (see operators and REGEX) The default instrument is PIANO, but the user has the option to chose a different instrument as follows: P_1=$(GUITAR)@{M_( 0-3 )}; which would make P_1 the same set of notes with the same time signature as P_0 played by a guitar instead of a piano. As mentioned in the introduction, the programmer should note that a phrase does not need to represent all the notes being played by a given instrument at a given time. Rather it is more analogous to the left hand of a piano, which can play at the same time as the right hand. Songs : A song is a list of phrases to be played concurrently. An example of a song could be: S_0=[] <<P_0<<P_1; Say we had a function, start_time, which, given two inputs, minutes and seconds, adds rest measures to a phrase to change its start time in the song. We could create S_1 as follows: S_1=[] <<P_0<<P_1<<(start_time(0, 30),) P_0<<P_1(start_time(1, 45),); such that S_1 first plays P_0 and P_1 together and then starts playing P_0 again 35 seconds into the song and P_1 at 1 minute 45 seconds into the song. Each song is associated with a specific tempo that can be assigned, but the default tempo is 120. The user has the option to assign the tempo as follows: S_2=$(72)@{P_( 0-2 )}; Which would set S_2 to a tempo of 72 beats per minute.

11 10 Oper ator Usag e : Arithmetic Operators Description Example + Addition x Subtraction x - 2 * Multiplication 5 * x / Division 12 / x Arithmetic operators are listed in increasing precedence, addition and subtraction having the least and multiplication and division having the most. Also, arithmetic operations can be applied to notes as well. Let s say we have a quarter note that has a pitch corresponding to key 45 on a keyboard: 45.q 45.q + 5 /* this expression has the value: 50.q */ 45.q + 50 /* this expression has the value: 7.q */ We are assuming an 88 key keyboard. So a value of 95 does not make sense, so we mod it by 88 to map it to a key. 45.q * 5 /* this expression has the value: 49.q */ 45.q / 5 /* this expression has the value: 9.q */ 45.q / 6 /* this expression has the value: floor(45/6) = 7 */ Assignment Operator Description Example = Assigns value from left hand side to right hand side a = 5 List Operator Description Example << Last Element Insertion A << B [] Access Element list[1] m_1=[35.q, 35.h]; m_2=[37.q];

12 11 ph1=[]; ph1=ph1<<m_2; /*ph_1==[[37.q]]*/ The bracket operation to access an element in a list works just like it does in C: l_1=[5, 6, 7]; elem_0=l_1[0]; /*elem_0==5*/ l_1=[[5,6],[7,8]]; elem=l_1[0][0]; /*elem==5*/ Precedence of Operations : ASSIGNMENT, LAST ELEMENT INSERTION (lowest) ACCESS LIST ELEMENT TIMES, DIVISION PLUS, MINUS (highest) Logical Operator Description Example & AND A B OR A & B == EQUALS A == B!= NOT EQUAL A!= B! NOT!A A B /* If A or B is not 0, the entire expression is evaluated to be 1. */ A & B /* If A and B are both not 0, then the expression is 1, otherwise 0 */ A == B /* If A has the same value as B, then A == B is 1 */ A!= B /* If A does not have the same value as B, then A!= B is 1 */!A /* If A is 1 then!a is 0, vice versa. */

13 12 Definition Operator Description Define 0-3 )} $ Define time signature, instrument, and tempo Instrument: $(GUITAR) Time Signature: $(4:4) Tempo: $(120) [] Define list [35.q, 46.h, 42.q] :: Remove element a_1 = [32.q, 24.q, 45.h]; a_2 = a_1[-::]; a_2 == [24.q, 45.h] Arithmetic Operator Grammar: expr expr PLUS term expr MINUS term term term term TIMES atom term DIVIDE atom atom atom NUMBER

14 13 Rese rved Word s : Functions : funk The keyword funk is used to indicate the beginning of a function. To declare a function, the keyword must be followed by a name for the function, as shown below: funktranspose(){ /*body*/... } Within the parentheses after the function name the user has the option to pass any number of comma-separated arguments. The scope of the function is limited to two braces, one left brace to indicate the beginning of the function and one right brace to indicate the end. The body of the function is treated essentially the same as expressions, which will be discussed in the next section. return The keyword return is used only in functions to signify a return value from the function. This keyword can only return one object, since a function can only return one object. A function must have a return value, or else an error will be thrown. Control Flow : if else elif fi The keywords if, else, elif, and fi work in conjunction with one another. Every block containing if, else, or elif must be contained by the fi keyword, which signifies the end of this type of control block. if and elif must be followed by an expression that evaluates to a boolean in parentheses and the body following must be contained in braces, such as: if(/*booleanexpressionhere*/){ /*body*/ }fi An if block can stand alone, but elif and else must be accompanied by at least an if. If if, elif, and else are all used together, then the elif statements must be

15 14 contained after the if block and before the else block. There can be any number of elif keywords used in a block of the control flow, but the boolean expressions will evaluate in the order provided by the user. while The keyword while is implemented similarly to how if and elif are, but no fi keyword is necessary. However, the expression following while must evaluate to a boolean expression. For example: while( i<5){ /*body*/ } Standard Library : play The play keyword will allow a user to play any set of notes once the code is run. This includes a single note or any list object containing a series of notes. play only takes in one argument, which is the argument directly after the keyword separated by whitespace: print m_2=[25.q, 26.q]; playm_2; /*playm_2*/ The print keyword will be able to print a string literal or any defined data type in the language. It will print out to the standard output in a way that is readable to the user, and only takes in one argument, which is the argument directly after the keyword. The usage of this keyword is similar to that of the play keyword. output_midi print helloworld! ; The output_midi keyword performs almost the same as play but will output a midi file. output_midi takes in two arguments. The first argument is any set of notes, which can be a single note or any list object containing a series of notes. The second argument is a filename (which can include a file path), which should be expressed as a string literal. m_2=[25.q, 26.q]; output_midim_2 file.midi ;

16 15 Othe r Expr essions : All expressions are made up of a sequence of variables, operators, & string literals. Variables All variables are of type string literal or one of the defined data types in the language. Variables must begin with a letter and can contain any combination of letters, digits, or the underscore _. Special Expressions All variable names are stored in memory, and special expressions can be used to access any given subset of them. A special expression is flagged by operator. The block, i.e. everything between the { and the } is used to resolve this set. Within a special expression, all characters outside of parenthesis are taken as part of the variable names. Within parentheses, the values and operators define a group of values which will be concatenated to the other characters outside the parentheses so as to resolve the possible names, all of which are included in the set. Values are flagged as characters using the syntax x where x is any given character. The - operator indicates range, which is determined by ASCII value. The, operator flags discrete elements to be included in the set. For example, say we have elements: m_0 m_1 m_2 m_3 m_4 The special 1-4 )} would resolve to the values m_1, m_2, m_3 and m_4. The special expression:

17 0-2, 3 )} would resolve to the values m_0, m_1, m_2 and m_3. Scope : The scope of all variables is contained to the the area limited between the outermost level of braces in which a variable is defined. For example, in the transpose function the scope of i is from lines 1-6 and the scope of m_1 is from lines funktranspose(i){ 2 m_1=[40.h]; 3 while(0){ 4 /*body*/ 5 } 6 } If there is a program with no outer braces, then the scope of the variable exists within the entire program. Boolean Expressions : Boolean expressions are generally defined as anything returns true or false. This is defined differently for various data types. Since boolean expressions exist but there is no boolean data type in our language, 1 will serve as true and 0 will serve as false. The statement in the while loop below, since i is equal to the integer 0, will return false, which is a valid boolean expression. inti=0; while(i){ /*body*/ } For other data types, boolean expressions will return false if the variable is empty and otherwise return true if there is something contained in the variable. In the code below, the object variable ph1 is a phrase defined as an empty list, which will return as false in the boolean expression in the if block. ph1=[]; if(ph1){ /*body*/ }fi Boolean expressions can also be defined using the logical operators specified in the Oper ator Usag e section.

18 17 FUNK TIONS /* Thisfunctiontransposesanentiresongbysomevaluesteps*/ funk transpose_song(steps) { i=0; } while(i<length(s) { j=0; while(j<length(s[i])) { k=0; while(k<length(s[i][j])) { note=s[i][j][k]; note=note+steps; s[i][j][k]=note; k=k+1; } j=j+1; } i=i+1; } /*keyword funk indicatesfollowingcodeblockisafunction*/ /* thefunctionisscopedwithcurlybrackets*/ /* thereisnoexplicittypecastingforpassinginargumentstoa function*/ All functions need to have an implicit parameter, which can either be a measure, phrase, or song. Applying a function: (transpose_song(s, 5)) s; /* sisasong*/ Multiple functions : (transpose_song(5))(transpose_song(7)) s; /* sisasong*/

19 18 /*transpose_song(5)isfirstappliedtos,thentranspose_song(7) isappliedtos.*/ Change timesig to $: another_funk(transpose(2,4))m j=$(4:4)(transpose(2,4),another_funk(5))m; /* FirstthetimesignatureisappliedtoM. Thenthefunction transpose isappliedtom. Thereturnvalueofthefunctiontransposeisgoingtobetheimplicit parameterpassedinto another_funk. Thereturnvalueofanother_funkis. Misanimplicitparameterthatcaneitherbeameasure,phrase,orsong. */ functions don t need typecast in explicit parameters. lists of parameters and operations in context of function declarations, timesig and function applications are delineated by commas in regular expressions comma means discrete value, - means range, dash higher precedence then comma declaration: funk name exp* body return definition: funk name exp*

20 19 Gram mar program admin? def def funk_def body def? body line body? comment body line funk_def cont_flow var assign expr var concat expr funk_call cont_flow lparen expr rparen expr var_val var equal expr funk (tsig)? (funk_call,*)? (regex var) expr bool expr expr math_op expr lit list ar_exp var_val val var concat expr ar_expr ar_expr math_op ar_expr lit list lbrack lit,* rbrack lbrac MEAT rbrac rexp letter post_var post_var wildcard* n_opt? post_var? n_opt lparen indices rparen indices (* range index* ), * bool tsig

M(usic)arma(dillo)(koo)lade: A Music Creation Language. Team:

M(usic)arma(dillo)(koo)lade: A Music Creation Language. Team: M(usic)arma(dillo)(koo)lade: A Music Creation Language Team: Cathy Jin (ckj2111) Tester Savvas Petridis (sdp2137) Language Guru Raphael Norwitz (rsn2117) System Architect Uzo Amuzie (ua2144) Manager September

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

JME Language Reference Manual

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.

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

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

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

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

More information

GAWK Language Reference Manual

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

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

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

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

Rhythm Reference Manual

Rhythm Reference Manual Rhythm Reference Manual John Sizemore Cristopher Stauffer Lauren Stephanian Yuankai Huo jcs2213 cms2231 lms2221 yh2532 Department of Computer Science Columbia University in the City of New York New York,

More information

Java+- Language Reference Manual

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

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

C-Major Language Reference Manual

C-Major Language Reference Manual C-Major Language Reference Manual Stephanie Huang, Andrew O Reilly, Jonathan Sun, Laura Tang (syh2115, ajo2115, jys2124, lt2510) Table of Contents 1. Introduction... 2 2. Expressions... 3 3. Data Types...

More information

PLT 4115 LRM: JaTesté

PLT 4115 LRM: JaTesté PLT 4115 LRM: JaTesté Andrew Grant amg2215@columbia.edu Jemma Losh jal2285@columbia.edu Jake Weissman jdw2159@columbia.edu March 7, 2016 Jared Weiss jbw2140@columbia.edu 1 Contents 1 Introduction 4 2 Lexical

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

Sick Beets. A Programming Language to Make Sick Beets. plt-project-proposal.sb Stephen Edwards February 8, 2017

Sick Beets. A Programming Language to Make Sick Beets. plt-project-proposal.sb Stephen Edwards February 8, 2017 Sick Beets A Programming Language to Make Sick Beets plt-project-proposal.sb Stephen Edwards February 8, 2017 Manager: Courtney Wong (cw2844) Language Guru: Angel Yang (cy2389) System Architect: Kevin

More information

TML Language Reference Manual

TML Language Reference Manual TML Language Reference Manual Jiabin Hu (jh3240) Akash Sharma (as4122) Shuai Sun (ss4088) Yan Zou (yz2437) Columbia University October 31, 2011 1 Contents 1 Introduction 4 2 Lexical Conventions 4 2.1 Character

More information

Petros: A Multi-purpose Text File Manipulation Language

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

More information

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

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

More information

easel LANGUAGE REFERENCE MANUAL

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

More information

VLC : Language Reference Manual

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

More information

GOLD Language Reference Manual

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

More information

corgi Language Reference Manual COMS W4115

corgi Language Reference Manual COMS W4115 corgi Language Reference Manual COMS W4115 Philippe Guillaume Losembe (pvl2109) Alisha Sindhwani (as4312) Melissa O Sullivan (mko2110) Justin Zhao (jxz2101) October 27, 2014 Chapter 1: Introduction corgi

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

GraphQuil Language Reference Manual COMS W4115

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

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

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

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

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

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

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

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

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

Language Reference Manual

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

More information

Onion Language Reference Manual. By: Andrew Aday, (aza2112) Amol Kapoor (ajk2227), Jonathan Zhang (jz2814)

Onion Language Reference Manual. By: Andrew Aday, (aza2112) Amol Kapoor (ajk2227), Jonathan Zhang (jz2814) Onion Language Reference Manual By: Andrew Aday, (aza2112) Amol Kapoor (ajk2227), Jonathan Zhang (jz2814) Introduction 3 Types 3 Lexical Conventions 4 Identifiers 4 Keywords 4 Comments 4 Expressions 5

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

d-file Language Reference Manual

d-file Language Reference Manual Erwin Polio Amrita Rajagopal Anton Ushakov Howie Vegter d-file Language Reference Manual COMS 4115.001 Thursday, October 20, 2005 Fall 2005 Columbia University New York, New York Note: Much of the content

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

COMS W4115 Programming Languages & Translators FALL2008. Reference Manual. VideO Processing Language (VOPL) Oct.19 th, 2008

COMS W4115 Programming Languages & Translators FALL2008. Reference Manual. VideO Processing Language (VOPL) Oct.19 th, 2008 Reference Manual VideO Processing Language (VOPL) Oct.19 th, 2008 Baolin Shao bs2530 Xuyang Shi xs2137 Huning Dai ( hd2210 ) Jia Li jl3272 Table of Content 1. Introduction... 4 2. Document Convention...

More information

Program Fundamentals

Program Fundamentals Program Fundamentals /* HelloWorld.java * The classic Hello, world! program */ class HelloWorld { public static void main (String[ ] args) { System.out.println( Hello, world! ); } } /* HelloWorld.java

More information

Expr Language Reference

Expr Language Reference Expr Language Reference Expr language defines expressions, which are evaluated in the context of an item in some structure. This article describes the syntax of the language and the rules that govern the

More information

B E C Y. Reference Manual

B E C Y. Reference Manual B E C Y Tabular data manipulation language Reference Manual Authors: Bong Koh Eunchul Bae Cesar Vichdo Yongju Bang bdk2109@columbia.edu eb2263@columbia.edu cv2139@columbia.edu yb2149@columbia.edu 1 1.

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

Fundamental of Programming (C)

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

More information

Twister: Language Reference Manual

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

More information

ARG! Language Reference Manual

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

More information

MELODY. Language Reference Manual. Music Programming Language

MELODY. Language Reference Manual. Music Programming Language MELODY Language Reference Manual Music Programming Language Tong GE Jingsi LI Shuo YANG tg2473 jl4165 sy2515 1. Introduction 2. Lexical Conventions 2.1 Comments 2.2 Identifiers 2.3 Keywords 2.4 Constants

More information

Overview: Programming Concepts. Programming Concepts. Names, Values, And Variables

Overview: Programming Concepts. Programming Concepts. Names, Values, And Variables Chapter 18: Get With the Program: Fundamental Concepts Expressed in JavaScript Fluency with Information Technology Third Edition by Lawrence Snyder Overview: Programming Concepts Programming: Act of formulating

More information

Overview: Programming Concepts. Programming Concepts. Chapter 18: Get With the Program: Fundamental Concepts Expressed in JavaScript

Overview: Programming Concepts. Programming Concepts. Chapter 18: Get With the Program: Fundamental Concepts Expressed in JavaScript Chapter 18: Get With the Program: Fundamental Concepts Expressed in JavaScript Fluency with Information Technology Third Edition by Lawrence Snyder Overview: Programming Concepts Programming: Act of formulating

More information

SFPL Reference Manual

SFPL Reference Manual 1 SFPL Reference Manual By: Huang-Hsu Chen (hc2237) Xiao Song Lu(xl2144) Natasha Nezhdanova(nin2001) Ling Zhu(lz2153) 2 1. Lexical Conventions 1.1 Tokens There are six classes of tokes: identifiers, keywords,

More information

Decaf Language Reference

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

More information

PieNum Language Reference Manual

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

More information

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

More information

DaMPL. Language Reference Manual. Henrique Grando

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

More information

A Simple Syntax-Directed Translator

A Simple Syntax-Directed Translator Chapter 2 A Simple Syntax-Directed Translator 1-1 Introduction The analysis phase of a compiler breaks up a source program into constituent pieces and produces an internal representation for it, called

More information

CLIP - A Crytographic Language with Irritating Parentheses

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

More information

Ordinary Differential Equation Solver Language (ODESL) Reference Manual

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

More information

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

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

More information

SOFT 161. Class Meeting 1.6

SOFT 161. Class Meeting 1.6 University of Nebraska Lincoln Class Meeting 1.6 Slide 1/13 Overview of A general purpose programming language Created by Guido van Rossum Overarching design goal was orthogonality Automatic memory management

More information

L-System Fractal Generator: Language Reference Manual

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

More information

Sprite an animation manipulation language Language Reference Manual

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

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

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals

More information

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

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

More information

MP 3 A Lexer for MiniJava

MP 3 A Lexer for MiniJava MP 3 A Lexer for MiniJava CS 421 Spring 2012 Revision 1.0 Assigned Wednesday, February 1, 2012 Due Tuesday, February 7, at 09:30 Extension 48 hours (penalty 20% of total points possible) Total points 43

More information

CSE 340 Fall 2014 Project 4

CSE 340 Fall 2014 Project 4 CSE 340 Fall 2014 Project 4 Due on Dec. 5, 2014 by 11:59 pm Abstract The goal of this project is to give you some hands-on experience with implementing a compiler. You will write a compiler for a simple

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

CMAT Language - Language Reference Manual COMS 4115

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)

More information

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

More information

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm.

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm. SFU CMPT 379 Compilers Spring 2018 Milestone 1 Milestone due Friday, January 26, by 11:59 pm. For this assignment, you are to convert a compiler I have provided into a compiler that works for an expanded

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

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

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

More information

Sketchpad Graphics Language Reference Manual. Zhongyu Wang, zw2259 Yichen Liu, yl2904 Yan Peng, yp2321

Sketchpad Graphics Language Reference Manual. Zhongyu Wang, zw2259 Yichen Liu, yl2904 Yan Peng, yp2321 Sketchpad Graphics Language Reference Manual Zhongyu Wang, zw2259 Yichen Liu, yl2904 Yan Peng, yp2321 October 20, 2013 1. Introduction This manual provides reference information for using the SKL (Sketchpad

More information

GeoCode Language Reference Manual

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

More information

COMP 202 Java in one week

COMP 202 Java in one week COMP 202 Java in one week... Continued CONTENTS: Return to material from previous lecture At-home programming exercises Please Do Ask Questions It's perfectly normal not to understand everything Most of

More information

B The SLLGEN Parsing System

B The SLLGEN Parsing System B The SLLGEN Parsing System Programs are just strings of characters. In order to process a program, we need to group these characters into meaningful units. This grouping is usually divided into two stages:

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

Creating a C++ Program

Creating a C++ Program Program A computer program (also software, or just a program) is a sequence of instructions written in a sequence to perform a specified task with a computer. 1 Creating a C++ Program created using an

More information

CHIL CSS HTML Integrated Language

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

More information

The C++ Language. Arizona State University 1

The C++ Language. Arizona State University 1 The C++ Language CSE100 Principles of Programming with C++ (based off Chapter 2 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University

More information

CSCE 120: Learning To Code

CSCE 120: Learning To Code CSCE 120: Learning To Code Manipulating Data I Introduction This module is designed to get you started working with data by understanding and using variables and data types in JavaScript. It will also

More information

String Computation Program

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,

More information

ML 4 A Lexer for OCaml s Type System

ML 4 A Lexer for OCaml s Type System ML 4 A Lexer for OCaml s Type System CS 421 Fall 2017 Revision 1.0 Assigned October 26, 2017 Due November 2, 2017 Extension November 4, 2017 1 Change Log 1.0 Initial Release. 2 Overview To complete this

More information

ASML Language Reference Manual

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

More information

Senet. Language Reference Manual. 26 th October Lilia Nikolova Maxim Sigalov Dhruvkumar Motwani Srihari Sridhar Richard Muñoz

Senet. Language Reference Manual. 26 th October Lilia Nikolova Maxim Sigalov Dhruvkumar Motwani Srihari Sridhar Richard Muñoz Senet Language Reference Manual 26 th October 2015 Lilia Nikolova Maxim Sigalov Dhruvkumar Motwani Srihari Sridhar Richard Muñoz 1. Overview Past projects for Programming Languages and Translators have

More information

Perdix Language Reference Manual

Perdix Language Reference Manual Perdix Language Reference Manual Orr Bibring ob2135@columbia.edu Justin Prosco jp2415@columbia.edu Angelika Zavou az2172@columbia.edu Bing Wu bw2236@columbia.edu October 18, 2007 Contents 1 Introduction

More information

MatchaScript: Language Reference Manual Programming Languages & Translators Spring 2017

MatchaScript: Language Reference Manual Programming Languages & Translators Spring 2017 MatchaScript: Language Reference Manual Programming Languages & Translators Spring 2017 Language Guru: Kimberly Hou - kjh2146 Systems Architect: Rebecca Mahany - rlm2175 Manager: Jordi Orbay - jao2154

More information

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments. Java How to Program, 9/e Education, Inc. All Rights Reserved. } Java application programming } Use tools from the JDK to compile and run programs. } Videos at www.deitel.com/books/jhtp9/ Help you get started

More information

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance. 2.1 Introduction (No questions.) 2.2 A Simple Program: Printing a Line of Text 2.1 Which of the following must every C program have? (a) main (b) #include (c) /* (d) 2.2 Every statement in C

More information

CA4003 Compiler Construction Assignment Language Definition

CA4003 Compiler Construction Assignment Language Definition CA4003 Compiler Construction Assignment Language Definition David Sinclair 2017-2018 1 Overview The language is not case sensitive. A nonterminal, X, is represented by enclosing it in angle brackets, e.g.

More information

YAGL: Yet Another Graphing Language Language Reference Manual

YAGL: Yet Another Graphing Language Language Reference Manual YAGL: Yet Another Graphing Language Language Reference Manual Edgar Aroutiounian, Jeff Barg, Robert Cohen July 23, 2014 Abstract YAGL is a programming language for generating graphs in SVG format from

More information

Introduction to C# Applications

Introduction to C# Applications 1 2 3 Introduction to C# Applications OBJECTIVES To write simple C# applications To write statements that input and output data to the screen. To declare and use data of various types. To write decision-making

More information

SMPL - A Simplified Modeling Language for Mathematical Programming

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

More information

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York CSc 10200! Introduction to Computing Lecture 2-3 Edgardo Molina Fall 2013 City College of New York 1 C++ for Engineers and Scientists Third Edition Chapter 2 Problem Solving Using C++ 2 Objectives In this

More information

LaTenS Language Reference Manual

LaTenS Language Reference Manual LaTenS Language Reference Manual Authors: Mohit Rajpal Daniel Schwartz Elsbeth Turcan Eliana Ward-Lev October 26, 2016 Contents 1 Introduction 2 1.1 Motivation and Introduction to Tensors..............................

More information

Introduction to Visual Basic and Visual C++ Arithmetic Expression. Arithmetic Expression. Using Arithmetic Expression. Lesson 4.

Introduction to Visual Basic and Visual C++ Arithmetic Expression. Arithmetic Expression. Using Arithmetic Expression. Lesson 4. Introduction to Visual Basic and Visual C++ Arithmetic Expression Lesson 4 Calculation I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Arithmetic Expression Using Arithmetic Expression Calculations

More information