DOC PREVIEW
Columbia COMS W4115 - Learning Language 

This preview shows page 1-2-3-4-5-6-7-8-9-62-63-64-65-66-67-68-69-70-125-126-127-128-129-130-131-132-133 out of 133 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 133 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Learning Language Final Report George Liao gkl2104 Joseanibal Colon Ramos jc2373 Stephen Robinson sar2120 Huabiao Xu hx2104 1 Contents Introduction 1 Background 2 Language Goals Project Plan 1 Division of workload 2 Timeline Lessons Learned 1 George Liao 2 Joseanibal Colon Ramos 3 Stephen Robinson 4 Huabiao Xu Language Reference Manual 1 Lexical Conventions 2 Basic Types 3 Expressions 4 Declarations 5 Statements 6 Input and Outpu 7 Scope and Linkage Appendix 1 Antlr Files 2 Java Files 3 Test Files 2 Introduction 1 Motivation Learning Language is a programming language designed to be accessible to students prior to entering high school Students at this age traditionally have no exposure to computer programming despite the fact that many of them have the maturity and education to write procedural logic For these students existing programming languages can be overwhelming due to their abstract syntax and the difficulty of implementing I O operations Existing learning languages typically have large standard libraries so that the programmer has many high level tools at his or her disposal While these libraries are certainly useful they require that the programmer memorize more keywords One of the central design tenets behind LL is to provide powerful functionality in an intuitive way Since computer science courses are typically not offered until high school learning language is intended to be introduced in math class For this reason most features of LL are implemented using operators LL is a tool to teach students the fundamentals of writing basic algorithms regardless of the underlying implementation In LL where possible the tedious aspects of writing mathematical code are taken care of automatically without loops Similarly LL provides seamless file and program window I O By dispelling the frustrating aspects of first learning to program LL will foster interest in computer science 2 Language Goals The goal of the language is to simplify programming into its most basic building blocks so that children can learn to master those concepts before having to deal with more advanced concepts This is to be done without a large standard library in fact functions are not supported at all Every task is implemented intuitively using familiar operators maintaining an easy to write easy to read and easy to understand language that can be picked up in a few minutes By providing an easy interface for beginners to learn to program we hope to open up the field of computer science to a wider audience Additionally we hope that LL will provide young students with a solid foundation in basic programming concepts in the event that they pursue computer science further 3 Project Plan 1 Division of workload In preparation for this project our team decided to further split ourselves into pairs so that we could improve our efficiency George and Huabiao worked primarily on the front end They were in charge of the lexer and parser Stephen and Jose were responsible for the walker semantic analysis and code generation The team worked together on troubleshooting debugging writing sample code and documentation Of course these responsibilities were loosely defined It was understood that all four members would be in some way involved with all aspects of the language design and implementation to ensure that everyone had a strong sense of how our compiler works 2 Timeline Our development timeline suffered from consistent delays throughout the entire project We held weekly meetings on Wednesdays most weeks and in the last few weeks we met several extra times Our scanner and preprocessor were completed before Spring Break After Spring Break development began on the parser and semantic analysis These were mostly finished by mid April at which point we began to frantically rush to complete code generation the walker and the support classes for generated code During the last week before our presentation we rushed to correct broken features and code generation Ultimately testing suffered due to poor time management 4 Lessons Learned 1 George Liao While I learned a lot about programming languages compilers antlr and other related subjects while working on this project the most valuable lessons that I took away from this were those involved with teamwork Working in a team that doesn t necessarily have a set meeting time and location with other members that constantly have their own schedules and priorities and simply making sure that each person was doing a fair amount of work turned out to be a huge obstacle we had to overcome I learned that design is crucial When dealing with other people you need to precisely put onto paper what your project should look like operate interact with itself and others Verbal agreements simply aren t enough you re going to need for everyone to have the same copy of the design in order for things to come out right Not only that but attention must be paid to every detail Also important is communication A communication procedure needs to be set down and established so that no information is lost Emails are good sometimes Phone calls are nice But by far and away is getting everyone together however difficult that may be to just meet and hammer out what needs to be done and how Finally I also learned that planning ahead is crucial Timeline and deadlines need to be followed even if they are self imposed They re there for a reason and keep you from scrambling to finish everything in the last second 2 Joseanibal Colon Ramos I quickly realized how making a language as simple and friendly as possible results in an exponential increase in inner complexity since it takes very careful analysis to translate what looks like a very simple line of code to the real meaning on a lower lever language One must analyze and carefully decide where intuition would lead a programmer using one s language It is also important to take into consideration all possible interpretations of a code so that the goal of simplicity is truly achieved not just what seems simple to the creator Working on this project helped me gain significant experience with Java and its libraries as well as with Java coding strategies It also taught me how to better establish open and clear communication with fellow programmers and finally but very importantly I became aware of the heavy work involved in the creation of a compiler and now I can better appreciate the beauty of broad languages 5 3 Stephen Robinson When I took CS1004 last fall Professor


View Full Document

Columbia COMS W4115 - Learning Language 

Documents in this Course
YOLT

YOLT

13 pages

Lattakia

Lattakia

15 pages

EasyQL

EasyQL

14 pages

Photogram

Photogram

163 pages

Espresso

Espresso

27 pages

NumLang

NumLang

6 pages

EMPATH

EMPATH

14 pages

La Mesa

La Mesa

9 pages

JTemplate

JTemplate

238 pages

MATVEC

MATVEC

4 pages

TONEDEF

TONEDEF

14 pages

SASSi

SASSi

16 pages

JTemplate

JTemplate

39 pages

BATS

BATS

10 pages

Synapse

Synapse

11 pages

c.def

c.def

116 pages

TweaXML

TweaXML

108 pages

Load more
Download Learning Language 
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Learning Language  and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Learning Language  2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?