A Project Approach to Programming Language Theory Joan Krone Denison University.

Slides:



Advertisements
Similar presentations
Adapted from Scott, Chapter 6:: Control Flow Programming Language Pragmatics Michael L. Scott.
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Gerardo Schneider Department of Informatics University of Oslo December 2008.
CS Concepts of Programming Languages Misc Topics.
ISBN Chapter 16 Logic Programming Languages.
Presented by Neng-Fa Zhou1 Evolution of programming languages –Machine language –Assembly language –Sub-routines and loop (Fortran) –Procedures and recursion.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
CSE305 Programming Languages Notes are based primarily on Sebesta text. Quotes are from Sebesta text (7 th edition), unless otherwise noted. Sources other.
Programming Language Concepts
CS 331, Principles of Programming Languages Introduction.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
UNIT 21 Software Engineering.
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
Programming Languages Lecture 12. What is Programming?  The process of telling the computer what to do  Also known as coding.
History of Programming Languages
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
CS2303 C14 Systems Programming Concepts Bob Kinicki.
1 UNIT 20 Software Engineering Lecturer: Ghadah Aldehim.
CS 363 Comparative Programming Languages
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
By Neng-Fa Zhou1 Evolution of programming languages –Machine language –Assembly language –Sub-routines and loop (Fortran) –Procedures and recursion (Algol,
Programming History. Who was the first programmer?
1 CSC 533: Organization of Programming Languages Spring 2010 See online syllabus at: Course goals:  understand issues in designing,
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Analysis of Programming Language Vladimir Viies Lembit Jürimägi Tallinna.
Chapter 6 Programming Languages (1) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Copyright © Genetic Computer School 2008 Computer Systems Architecture SA 7- 0 Lesson 7 Memory Management.
CS 331, Principles of Programming Languages Chapter 1.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
Allyson M. Hoss, January 14, 2008 CSC 7101 Programming Language Structures Spring 2008 Louisiana State University.
int k = Integer.MAX_VALUE; k++; int k = Integer.MAX_VALUE; k++; What happens when the following code executes? byte b = someFile.readByte(); b = (byte)(b.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Language Paradigms CS655.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Language History and Evolution
CSC 533: Programming Languages Spring 2016
The language focusses on ease of use
CSC 533: Programming Languages Spring 2015
Concepts of Programming Languages
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Why study programming languages?
Computer Programming (BCT 1113)
PROGRAMMING LANGUAGES
Programming Language Design Concepts
Problem Solving Using C: Orientation & Lecture 1
CS101 Introduction to Computing Lecture 19 Programming Languages
Programming Language History and Evolution
Evolution of programming languages
Introduction to Computers and Python
Welcome to Programming Languages!
Problem Solving.
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Problem Solving Using C: Orientation & Lecture 1
Ada – 1983 History’s largest design effort
Programming Language Design
A Project Approach to Programming Language Theory
Problem Solving Using C: Orientation & Lecture 1
Introduction to Computer Programming
and Program Development
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
School of Computer & Information Engineering,
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

A Project Approach to Programming Language Theory Joan Krone Denison University

2 Many Languages Natural6,912 Millennia to develop Programming 2,500 (U. of Kansas) 8,500 (Diarmuid Piggott) all within 50 years One language per week since Fortran based on the 2,500

3 Where Have All the Languages Gone? Assembler Fortran Basic Pascal PL1 Modula2 Ada C C++ Lisp/Scheme ML Clu Prolog Smalltalk Eiffel Python Perl Java PHP HTML

4 Recent Article Ryder, Soffa, Burnett, “The Impact of Software Engineering Research on Modern Programming Languages,” ACM TOSEM, 2005.

5 Paradigms Logic Structured Procedural OO Use of Abstraction (java interfaces)

6

7 Why Johnny Can’t Code David Brin Language for novices?

8 The Problem Maybe Basic Probably java Lack of student experience

9 Two Levels of Programming Language Courses Sophomore Level: survey Senior Level: capstone

10 A Two Pronged Approach Semester Project Daily assignments –Same questions –Different languages for different students

11 Project Choices 1.Become a guru. 2.Do a comparative analysis of 2 languages in the same category. C++ and Java Perl and HTML 3.Do a comparative analysis of 2 languages in the different categories. Java and Scheme Haskell and Python

12 4.Write a translator for a simple language. 5.Design a new language.

13

14 To Be a Guru Classify History Scoping Type Checking Support for Abstraction Concurrency Type Conversion

15 Write documentation Choose at least 3 features unique to your language and explain how those features can be used advantageously by a programmer to perform some task in your language more efficiently than it could be done in another language without those features. Be prepared to give a talk and a demonstration which illustrate how your language facilitates the implementation of solutions to problems.

16 Daily Requirement Choose a language Discover how that language handles a particular topic, such as scoping. Prepare a demo to illustrate the discovery

17 Class Size Small class - - individual investigations Large class - - groups of 2, 3, or 4

18 Programming Languages are Like Cars Assembler: A formula I race car. Very fast but difficult to drive and maintain. FORTRAN II: A Model T Ford. Once it was the king of the road. FORTRAN IV: A Model A Ford. FORTRAN 77: a six-cylinder Ford Fairlane with standard transmission and no seat belts. COBOL: A delivery van. It's bulky and ugly but it does the work. BASIC: A second-hand Rambler with a rebuilt engine and patched upholstery. Your dad bought it for you to learn to drive. You'll ditch it as soon as you can afford a new one. PL/I: A Cadillac convertible with automatic transmission, a two-tone paint job, white-wall tires, chrome exhaust pipes, and fuzzy dice hanging in the windshield.

19 Pascal: A Volkswagon Beetle. It's small but sturdy. Was once popular with intellectual types. LISP: An electric car. It's simple but slow. Seat belts are not available. PROLOG/LUCID: Prototype concept cars. FORTH: A go-cart. LOGO: A kiddie's replica of a Rolls Royce. Comes with a real engine and a working horn. APL: A double-decker bus. It takes rows and columns of passengers to the same place all at the same time but it drives only in reverse and is instrumented in Greek. Ada: An army-green Mercedes-Benz staff car. Power steering, power brakes, and automatic transmission are standard. No other colors or options are available. If it's good enough for generals, it's good enough for you. C++: A black Firebird, the all macho car. Comes with optional seatbelt (lint) and optional fuzz buster (escape to assembler). Java: All-terrain very slow vehicle.

20 Our Future C++ and Java forever? Probably Not Our students may be the designers of the next important language Hopefully, they will learn from history