Upload
leonard-goodwin
View
220
Download
1
Tags:
Embed Size (px)
Citation preview
Allyson M. Hoss,
January 14, 2008
CSC 7101 Programming Language Structures
Spring 2008
Louisiana State University
2
CSC 7101 Programming Language Structures
• Introduction
• Syllabus
• Paper & Presentation
• Overview
3
Instructor: Allyson M. Hoss
Office: SE Lab, Coates Hall 162
Hours: Monday 1:30 pm – 4:30 pm
Other times by appointment
Phone: 578-1406 (M 1:30-4:30pm)
Email (preferred): [email protected]
CSC 7101 Programming Language Structures
4
Who
What
When
Where
How
Why
5
Introduction
• Who …….. Name?
• What ……. PhD or Masters?
• Why …….. Love of PL, General Exam, …?
• When …… take General Exam?
• Where ….. Academia or Industry?
• How …….. Many papers have you written
in CSC?
6
CSC 7101 Programming Language Structures
• Introduction
• Syllabus
• Paper & Presentation
• Overview
7
CSC 7101 Programming Language Structures
Objectives Learn formal models of programming language
syntax and semantics
Understand construction of correct programs and their verification
Explore language design issues
Research current topics in programming language
Improve research writing and presenting skills
8
CSC 7101 Programming Language Structures
• Introduction
• Syllabus
• Paper & Presentation
• Overview
9
Paper and Presentation
• Select a research topic in programming languages
search the Web for open issues & research directions
explore what interests you
• write a summary paper approximately 10 pages double-spaced
5-8 sources (3 major; 3 recent)
• give an oral presentation 15 minutes
10
Paper and Presentation
Staged DeliveryTopic & References: January 28th
Outline: February 11th
Initial Slides: March 24th
Final Slides & Paper: April 7th
Presentation: April 7th - 28th
11
CSC 7101 Programming Language Structures
• Introduction
• Syllabus
• Paper & Presentation
• Overview
12
Overview
What is a Programming Language?
“notational system intended primarily to
facilitate human-machine interaction” [Schalkoff07]
13
Basic Forth Awk
Python Eiffel APL Lisp
HTML ML Ada
JavaScript Logo
VBScript dBASE
MATLAB APL SNOBOL
14
Top 10 Most Popular
1967Algol 60, APL, Basic, BCPL, COBOL,
Fortran IV, Lisp 1.5, PL/I, Simula 67, SNOBOL
2007Java, C, Visual Basic, C++, PHP, Perl, C#,
Python, JavaScript, Ruby
[TIOBE Programming Community Index; www.tiobe.com]
15
Overview
• Why Study PL? language features or capabilities to speed
development learn new languages more quickly and
efficiently understand underlying implementation issues modify or design new languages
Obtained from [Shalkoff 07]
16
Overview
• Why Study PL?
• To help answer questions such as: How do you choose a PL? How do you tell someone about a PL? How do you describe what a program does? How do you describe what a program is supposed to do?
Obtained from [Shalkoff 07]
17
Overview
• Programming Language Paradigms
Procedural or Imperative (C, C++, Java) Functional (Lisp, Scheme, ML) Declarative or Logic (Prolog) Object-oriented (Java, C++, Eiffel)
Rule-based, Event-driven, Parallel or Concurrent,Scripting, Markup, Specification, Assembly, Visual, …
18
Overview
FORMAL FORMAL
SYNTAX SEMANTICS
Static Dynamic
BNF attribute grammars operational
(Backus axiomatic
Naur denotational
Form)
19
Overview
• Functional Programming & Lambda Calculus ML (Meta-Language)
• Logic Programming Prolog
• Type Systems static vs dynamic strongly vs weakly typed monomorphism vs polymorphism coercions, overloading
20
21
Assignment # 1 Due January 28th
Reading – 3 Papers:“On Understanding Types, Data Abstraction, and Polymorphism”
“The Semicolon Wars”
“Software and the Future of Programming Languages”
Research Paper:
Describe your chosen research topic
List sourcesTopics must be unique - approved on a FCFS
(You can email me this information before the due date)
22
No
Class
Next Week