COMS 4115 Programming Language and Translator Tsung-Kai Lin(tl2450) Jie Huang(jh3105) Fang Da(fd2263) Ran Wang(rw2409) Shao-Chuan Wang(sw2644) Computer.

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Integrated Development Environments, Source Control Repositories, Automated Testing Tools, Bug Tracking, Code Analysis Tools, Build Tools, Project Hosting.
CSE 4939 Alex Riordan Brian Pruitt-Goddard Remote Unit Testing.
This material is based upon work supported by Science Foundation Ireland under Grant No. 03/IN3/1361 UNIVERSITY COLLEGE DUBLIN DUBLIN CITY UNIVERSITY The.
DEPARTMENT OF COMPUTER ENGINEERING
PLLab, NTHU Cs2403 Programming Languages Implementation Issues Cs2403 Programming Language Spring 2005 Kun-Yuan Hsieh.
WPSM Programming Language A simple language that transform simple data structure into complex xML format Wai Y. Wong Peter Chen Seema Gupta Miqdad Mohammed.
An framework for model-driven product design and development using Modelica Adrian Pop, Olof Johansson, Peter Fritzson Programming Environments Laboratory.
Reference Book: Modern Compiler Design by Grune, Bal, Jacobs and Langendoen Wiley 2000.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Best Practices for Channel Development Al Wold Arizona State University.
Big Projects  Part of this class is about picking a cool software project and building it 1.
An ide for teaching and learning prolog
ANTLR.
ANTLR Andrew Pangborn & Zach Busser. ANTLR in a Nutshell ANother Tool for Language Recognition generates lexers generates parsers (and parse trees)‏ Java-based,
Introduction to High-Level Language Programming
ISYS 350 Business Application Development
JCE A Java-based Commissioning Environment tool Hiroyuki Sako, JAEA Hiroshi Ikeda, Visible Information Center Inc. SAD Workshop.
September 7, September 7, 2015September 7, 2015September 7, 2015 Azusa, CA Sheldon X. Liang Ph. D. Computer Science at Azusa Pacific University.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
THE HOG LANGUAGE A scripting MapReduce language. Jason Halpern Testing/Validation Samuel Messing Project Manager Benjamin Rapaport System Architect Kurry.
Chapter 1. Introduction.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
TRACEREP: GATEWAY FOR SHARING AND COLLECTING TRACES IN HPC SYSTEMS Iván Pérez Enrique Vallejo José Luis Bosque University of Cantabria TraceRep IWSG'15.
Chapter 10: Compilers and Language Translation Invitation to Computer Science, Java Version, Third Edition.
MCSL Monte Carlo simulation language Diego Garcia Eita Shuto Yunling Wang Chong Zhai.
Introduction to Java August 14, 2008 Mrs. C. Furman.
Developing Effectively With ClearCase Tamir Gefen CEO & ALM expert.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
Compiler design Lecture 1: Compiler Overview Sulaimany University 2 Oct
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Presentation Name / 1 Visual C++ Builds and External Dependencies NAME.
+ Why program? Java I Fall 2015 Dr. Dwyer. + What do we use computers for? (desert island time – what computing application would you need to have on.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
Celluloid An interactive media sequencing language.
Chapter 1: Introduction 1 Compiler Designs and Constructions Chapter 1: Introduction Objectives: Course Objectives Introduction Dr. Mohsen Chitsaz.
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System Architect) Amol Joshi (System Integrator) Chaitanya Korgaonkar (Verifier.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Object Oriented Programming Criteria: P2 Date: 07/10/15 Name: Thomas Jazwinski.
Software Development Introduction
Why you should buy SEL. The Stock Exchange Language Alexander Golec (akg2136) Dan Mechanic (dm2474) Eric Powders (ejp2127) Nisha Ranga (nr2399) Noah Stephens-Davidowitz.
CSC 4181 Compiler Construction
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
THRLL Programming Language Aimee Sanchez Neetha Sebastion Kapil Verma Hemanth Murthy Michael Seaman.
Project Dow: Extending EclipseTrader Emmanuel Sotelo Fall 2008.
MAY 18, 2016 BARRY SMITH MATHEMATICS AND COMPUTER SCIENCE DIVISION ARGONNE NATIONAL LABORATORY WEBINAR SERIES: COLLABORATION AMONG THE IDEAS SCIENTIFIC.
Introduction to JAVA Programming
Debuggers. Errors in Computer Code Errors in computer programs are commonly known as bugs. Three types of errors in computer programs –Syntax errors –Runtime.
Software Engineering “Practical Approach”
Chapter 1 Introduction.
Introduction to Compiler Construction
SE goes software engineering; (practically) managing the Compose
Chapter 1 Introduction.
CS 3304 Comparative Languages Fall 2011
Compiler 薛智文 TH 6 7 8, DTH Spring.
Compiler 薛智文 TH 6 7 8, DTH Spring.
Implementation of a Functional Programming Language
SE goes software engineering; (practically) managing the Compose
Compiler 薛智文 M 2 3 4, DTH Spring.
Presentation transcript:

COMS 4115 Programming Language and Translator Tsung-Kai Lin(tl2450) Jie Huang(jh3105) Fang Da(fd2263) Ran Wang(rw2409) Shao-Chuan Wang(sw2644) Computer Science, Columbia University1

Outline  Introduction (Tsung-Kai)  Language Feature (Jie)  System Architecture (Fang)  Implementation and Integration (Ran)  Test Plan (Shao-chuan)  Demo Computer Science, Columbia University2

Outline  Introduction (Tsung-Kai)  Language Feature (Jie)  System Architecture (Fang)  Implementation and Integration (Ran)  Test Plan (Shao-chuan)  Demo Computer Science, Columbia University3

Day Trading  Buying and Selling within one day  High frequency and short term trading Computer Science, Columbia University4

Predict the Trend  Indicators can help predict the trend of stocks  Apply strategy to make money Computer Science, Columbia University5

Searching For Potential Computer Science, Columbia University6 Stock Market Subset Potential Stock Indicator Action Portfolio Subset Potential Stock Indicator Buy Sell

Outline  Introduction (Tsung-Kai)  Language Feature (Jie)  System Architecture (Fang)  Implementation and Integration (Ran)  Test Plan (Shao-chuan)  Demo Computer Science, Columbia University7

Simple Computer Science, Columbia University8 Trend Following

MA1(10) crossup MA1(15) select “MSFT”, “GOOG”, “DELL” Computer Science, Columbia University9

10 > (0) = 5 Math.round(2) = 3 volume (1) 1 Property.getd(2) = 2 “MSFT” (0) 0 “volume” (0) 0

Efficient Computer Science, Columbia University11

Outline  Introduction (Tsung-Kai)  Language Feature (Jie)  System Architecture (Fang)  Implementation and Integration (Ran)  Test Plan (Shao-chuan)  Demo Computer Science, Columbia University12

Executable Java Compiler Architecture Computer Science, Columbia University13 Source Lexeme Stream Lexer Syntax Tree Parser Annotated Synt. Tree Semantic Anal. Code Optimizer Code Generator Strategy EngineGUI Run-time Library Data Source

Outline  Introduction (Tsung-Kai)  Language Feature (Jie)  System Architecture (Fang)  Implementation and Integration (Ran)  Test Plan (Shao-chuan)  Demo Computer Science, Columbia University14

Software Development Environment  Simulation System Stock market simulation Trading system simulation  Distributed Development Google Code repository Bug Tracking ○ Bug list Bug list ○ Sample bug Sample bug Meeting Log Feature maintenance Computer Science, Columbia University15

Implementation  OS Platform  Languages and IDE Eclipse Multi-level Makefiles  SVN  External Libraries JFLEX BYACC Computer Science, Columbia University16

System Integration  Integration within the translator  Integration across entire system Computer Science, Columbia University17

Outline  Introduction (Tsung-Kai)  Language Feature (Jie)  System Architecture (Fang)  Implementation and Integration (Ran)  Test Plan (Shao-chuan)  Demo Computer Science, Columbia University18

Test Plan: Agile Testing  Focus on working software Test script before commit the code  Responding to changes Pair/triple programming weekly  Hierarchical test framework: Unit test/Regression test System test  Tools: Junit/Makefile script/Bash script Computer Science, Columbia University19

Unit tests/Regression Test  Screenshot Computer Science, Columbia University20

Snapshots on test case (1/2)  Check if the syntax errors are issued correctly  Also check the line number. Computer Science, Columbia University21 ParserSyntaxErrorTest.java

Snapshots on test case (2/2) Computer Science, Columbia University22  Multiple definitio ns of the same function names TypeCheckNameConflictionTest.java

System Test Screenshot  Generate the compiled java sources codes.  Diff with the “answers”. Computer Science, Columbia University23

Outline  Introduction (Tsung-Kai)  Language Feature (Jie)  System Architecture (Fang)  Implementation and Integration (Ran)  Test Plan (Shao-chuan)  Demo Computer Science, Columbia University24

Computer Science, Columbia University25