Programming Language Translation Jamie McAtamney.

Slides:



Advertisements
Similar presentations
Chapter 5: Hiding implementation ● Two viewpoints regarding classes: – Implementor of a class: knows everything about class – User of a class: Only wants.
Advertisements

Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Object Oriented Programming in Java George Mason University Fall 2011
Introduction to Computer Programming in C
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
© Janice Regan Problem-Solving Process 1. State the Problem (Problem Specification) 2. Analyze the problem: outline solution requirements and design.
CIS 101: Computer Programming and Problem Solving Lecture 8 Usman Roshan Department of Computer Science NJIT.
Spring R. Smith - University of St Thomas - Minnesota QMCS 130: Today’s Class Final Exam ReviewFinal Exam Review –Assessment –Exam Format –C –Matlab.
Honors Compilers The Course Project Feb 28th 2002.
CSCI 639 Topics in Software Engineering Assignment #5 Fall 2008.
B iological S cripting L anguage Jared Eng Jay Kota Igor Marfin Amna Qaiser Jared Eng Jay Kota Igor Marfin Amna Qaiser BSL.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Reasons to study concepts of PL
Advanced Compilers CSE 231 Instructor: Sorin Lerner.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
©2004 Brooks/Cole Chapter 1: Getting Started Sections Covered: 1.1Introduction to Programming 1.2Constructing a Java Program 1.3The print() and println()
C++ data types. Structs vs. Classes C++ Classes.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Course Map The Java Programming Language Basics Object-Oriented Programming Exception Handling Graphical User Interfaces and Applets Multithreading Communications.
Guide To UNIX Using Linux Third Edition
1 Software, Programmings. 2 Types of Software Figure 9.1 Shakeel Ahmad.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
Introduction Who we are How we’re going to help: Java and course- related material Subsribe to mailing list: COMP 346:
Programming Language Concepts
JAVA An overview for C++ programmers Wagner Truppel March 1st, 2004.
CCSA 221 Programming in C CHAPTER 2 SOME FUNDAMENTALS 1 ALHANOUF ALAMR.
CS 355 – Programming Languages
There are only 10 types of people in the world, those who understand binary and those who don't.
CIS Computer Programming Logic
Data Flow Diagram A method used to analyze a system in a structured way Used during: Analysis stage: to describe the current system Design stage: to describe.
Chapter 9 Defining New Types. Objectives Explore the use of member functions when creating a struct. Introduce some of the concepts behind object-oriented.
Composition Steps 01/10/2013. Agenda Retooling note Define composition Wrapper without function pointer Compositions (thus far) Evolutionary computation.
Robotics Simulation (Skynet) Andrew Townsend Advisor: Professor Grant Braught.
Programming language A programming language is an artificial language designed to communicate instructions to a machine,languageinstructionsmachine particularly.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Object-Oriented Programming (OOP). Implementing an OOD in Java Each class is stored in a separate file. All files must be stored in the same package.
Input & Output In Java. Input & Output It is very complicated for a computer to show how information is processed. Although a computer is very good at.
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Advanced Compilers CMPSCI 710 Spring 2004 Lecture 1 Emery Berger University of Massachusetts,
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Introduction to Programming the WWW I CMSC Summer 2003 Lecture 7.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 1, 08/28/03 Prof. Roy Levow.
RUN-Time Organization Compiler phase— Before writing a code generator, we must decide how to marshal the resources of the target machine (instructions,
JavaScript Defined JavaScript Basics Definitions JavaScript is an object-oriented programming language designed for the world wide web. JavaScript code.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved More about.
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 21: Course Wrap-up and Look Ahead.
Java Basics Opening Discussion zWhat did we talk about last class? zWhat are the basic constructs in the programming languages you are familiar.
1 Functions, Part 1 of 2 Topics Using Predefined Functions Programmer-Defined Functions Using Input Parameters Function Header Comments.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Chapter 14 Programming and Languages McGraw-Hill/Irwin Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved.
EAI: Address Internationalization Harald Alvestrand Xiaodong Lee.
Introducing C++ to Java Programmers by Kip Irvine updated 2/27/2003.
© 2004 Pearson Addison-Wesley. All rights reserved3-1 Collaboration Policy Programming Tests are individual work. You may not work with others in the class.
CS 161 Introduction to Computer Science I Winter, 2014: 112 Spring, 2014: 131 Summer, 2014: 132.
Midterm/Final Presentation Project Name Students: [Name1], [Name2] Supervisor: [SV Name] Context: Project [A/B/Special] Semester: Winter/Spring, Year Date:
ENG College of Engineering Engineering Education Innovation Center 1 Functions 2 in MATLAB Topics Covered: 1.Functions in Script Files Inline Functions.
Course topics Representing programs Analyzing and transforming programs Applications of these techniques.
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved More about.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Software Development Expansion of topics page 28 in Zelle
CSE 374 Programming Concepts & Tools
Advanced Compilers CMPSCI 710 Spring 2003 Lecture 1
Programming Language Translation
Problem Solving Techniques
Programming Language Translation
Optimizing Compilers CISC 673 Spring 2009 Course Overview
Functions, Part 1 of 2 Topics Using Predefined Functions
Presentation transcript:

Programming Language Translation Jamie McAtamney

Background Similar research Jazillian pay-per-program translation company Terekhov & Verhoef’s paper on translation difficulties Lili Qiu's paper on procedural vs. object-oriented languages Erik Demaine’s paper on pointers Todd Proebsting’s paper on Java to C translation Anonymous paper on structs

Methodology Translation algorithm Formatting  Remove programming idiosyncrasies Single-Pass translator  Handles syntax whose context is on the same line Two-Pass translator  Handles syntax whose context is elsewhere in the program Formatting  Makes everything look nice

Methodology Finished  Primitive types  Arrays  Method headers  Input/output  Preprocessor directives  Most package methods  Structs  Pointers Mostly Done Graphics Possible future topics Computer-to-computer communication

Methodology Testing & Analysis Testing old C programs  Have a few “fake” programs to test particular modules Script to do testing 4 th Quarter Results  Compilable and runnable  Pointers finished

Progress Results Thus Far Program is still error-free All implemented areas fully translated  Minus graphics, of course Translator outputs compilable and runnable program ~96% C syntax translatable

Sample Screenshots

Progress Analysis Finished exactly what I wanted to  Managed to get pointers done despite the research papers on the topic Where to go from here Might keep fiddling with it. Possibly revisit graphics if I can get JOGL working Maybe do MPI