Download presentation
Presentation is loading. Please wait.
1
A Project Approach to Programming Language Theory
Joan Krone Denison University
2
Many Languages Natural 6,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)
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 Become a guru.
Do a comparative analysis of 2 languages in the same category. C++ and Java Perl and HTML Do a comparative analysis of 2 languages in the different categories. Java and Scheme Haskell and Python
12
Write a translator for a simple language.
Design a new language.
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.