ICS%20313%20Fundamentals%20of%20Programming%20Languages - PowerPoint PPT Presentation

About This Presentation
Title:

ICS%20313%20Fundamentals%20of%20Programming%20Languages

Description:

Describe grammar and syntax specifications and analyze their implementations. ... Pop Quizzes. 10 minute. Each covers material given during the current lecture. ... – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 41
Provided by: scie370
Category:

less

Transcript and Presenter's Notes

Title: ICS%20313%20Fundamentals%20of%20Programming%20Languages


1
ICS 313Fundamentals of Programming Languages
Spring Semester 2004 - 2005 (042) King Fahd
University of Petroleum Minerals Information
Computer Science Department
2
Section 04, 1000-1115am UT, 24250
  • Instructor Dr. Wasfi Al-Khatib ???? ??????
  • Office 22 133-1
  • Office Hours UT 900 - 950am and 230
    330pm M 300 - 400pm Or by
    appointment
  • Phone 1715
  • email wasfi_at_ccse.kfupm.edu.sa
  • WebCT Page http//webcourses.kfupm.edu.sa

3
Catalogue Description
  • Concepts of Programming Languages Syntax and
    semantics, Data types, Control structures,
    Subprograms, Exception handling, Run-time storage
    management. Programming paradigms Imperative,
    functional, logical, object-oriented and
    concurrent programming

4
Course Objectives
  • Outline the history and describe the rationale of
    different programming languages.
  • Describe grammar and syntax specifications and
    analyze their implementations.
  • Describe, analyze and use the various mechanisms
    in procedural languages e g. data types, scope,
    control structures subprograms, etc.
  • Describe and use the major programming paradigms
    Imperative, Functional, Logical and
    Object-Oriented.
  • Explain and describe how concurrency and
    exception handling are used in programming
    Languages

5
Text Book
  • Concepts of Programming Languages, By. R.
    Sebesta, 6th Ed, Addison Wesley, 2004.

6
Course Outline
  1. Preliminaries
  2. Evolution of the Major Programming languages
  3. Describing Syntax and Semantics
  4. Imperative Programming (Introduction to C)
  5. Functional Programming
  6. Logic Programming
  7. Names, Bindings, Type Checking and Scopes
  8. Data Types
  9. Expressions and the Assignment Statements
  10. Statement-Level Control Structure
  11. Subprograms
  12. Implementing Subprograms
  13. Abstract Data Types

7
Grading Policy
Programming Assignments 20
Pop Quizzes 10
Major Exam 1 10
Major Exam 2 15
Major Exam 3 20
Final Exam 25
8
Important Dates
Task Date and Time Location Weight
Help Session I TBA TBA N/A
Major Exam I Saturday March 5, 2005 630 800pm TBA 10
Help Session II TBA TBA N/A
Major Exam II Saturday March 26, 2005 630 800pm TBA 15
Help Session III TBA TBA N/A
Major Exam III Saturday April 30, 2005 630 800pm TBA 20
Help Session IV TBA TBA N/A
Final Exam TBA TBA 25
9
Attendance Policy
  • Attendance will be checked each class.
  • Unexcused Absences Policies
  • The first THREE absences are FREE of charge.
  • The fourth absence is worth 3 points of your
    overall score (out of 100).
  • Each subsequent absence, up to the sixth absence,
    is worth -0.75 of your overall score.
  • The seventh absence will result in an automatic
    DN grade.
  • An unexcused absence can become an excused
    absence ONLY by an official letter from the Dean
    of Students office.

10
General Rules
  • Students are expected to be courteous toward the
    instructor and their classmates throughout the
    duration of this course.
  • All cell phones and pagers must be turned off
    during class and exams.
  • Assignments are due at the beginning of class. No
    late assignment will be accepted. Discussing
    questions among your classmates is highly
    encouraged. Copying solutions from each other is
    NOT permitted and will be considered CHEATING and
    will be dealt with accordingly.

11
Pop Quizzes
  • 10 minute
  • Each covers material given during the current
    lecture.
  • They require you to be attentive during class
    time as you will be subject at any point in time
    to answer a pop-quiz.

12
IMPORTANT RULE
  • ZERO-TOLERANCE for CHEATING.

13
Exam Policies
  • 24-Hour Policy One has 24 hours to object to the
    score of an assignment, a pop quiz, or a major
    exam from the end of the class time in which the
    graded assignment/quiz/exam papers have been
    distributed. If for some reason you cannot
    contact me in person within this period, send me
    an email requesting an appointment. The email
    should be sent within the 24-hour time period.
  • Exams, assignments and pop-quizzes are generally
    CHALLENGING.

14
1. Preliminaries
15
Reasons to study concepts of PLs
  • Increased capacity to express programming
    concepts
  • Improved background for choosing appropriate
    languages
  • Increased ability to learn new languages
  • Understanding the significance of implementation
  • Increased ability to design new languages
  • Overall advancement of computing

16
Programming Domains
  • Scientific applications
  • Business applications
  • Artificial intelligence
  • Systems programming
  • Scripting languages
  • Special purpose languages

17
What is a Programming Language
  • A programming language is

18
Programming Language Definition
  • Language Syntax
  • Grammar and punctuation.
  • Superset of legal languages.
  • Language Semantics
  • What the syntax means.
  • Restricts syntactically correct programs.

19
Computer Program Development
Algorithm
Human brains
Problem
Semantics
Algorithm
Translation
Syntax
Syntax
Computer Program
20
Why Take This Course?
  • In order to graduate
  • True
  • False
  • Not necessarily
  • None of the above
  • Learning a new language depends on how many
    languages you learn
  • True
  • False
  • Not necessarily
  • None of the above

21
Programming Paradigms
  • Imperative
  • Program Algorithms Data
  • Functional
  • Program Function o Function
  • Object-Oriented
  • Program Objects Messages
  • Logic
  • Program Facts Rules
  • Special-purpose

22
Imperative Programming
  • Oldest style of Programming
  • Algorithm is expressed as a sequence of
    instructions, e.g. assignment, looping,
  • For example, assembly, Fortran, Algol, Pascal,
    and C.

23
Example in C
  • Finding the greatest common divisor between two
    elements

includeltstdio.hgt void main() int x,y
printf("enter any two numbers") scanf("d
d",x,y) if(xlt0)x-x if(ylt0)y-y
while(x!y) xgty?(xx-y)(yy-x)
printf("gcd of the numbers is d",x)
24
Functional Programming
  • Comes from traditional Mathematics.
  • Description of computation is based on the
    evaluation of functions or the application of
    functions to known values.
  • No notion of variables or assignment to
    variables!
  • Loops are replaced by recursion!
  • For example Lisp, Scheme, ML, Haskell.

25
Example in Scheme
  • Finding the greatest common divisor between two
    elements

(define (gcd u v) (if ( v 0)
u (gcd v (remainder u v))))
26
Object Oriented Programming
  • Based on class and inheritance
  • Instead of applying global functions to
    variables, methods associated with instances
    are invoked (message passing)
  • For example, C, Java, Smalltalk,

27
Example in C
  • Finding the greatest common divisor between two
    elements
  • // gcd.cpp - long integer greatest common divisor
  • class BadGcdArgumentsException
  • long gcd(long a,long b) // Euclidean algorithm -
    returns 0 // if a and b are both 0.
  • long r // First make sure everything is gt 0.
  • if(a lt 0) a -a
  • if(b lt 0) b -b
  • // If both arguments are 0, throw an exception.
  • if(a 0 b 0)
  • throw BadGcdArgumentsException()
  • // Otherwise the gcd of 0 and x is x.
  • if(a 0) return(b) if(b 0) return(a)
  • // Keep dividing until we get a zero remainder.
    The last
  • // nonzero remainder is the gcd.
  • while(b gt 0)
  • r a b
  • a b
  • b r

28
Logic Programming
  • Like functional programming, but through formal
    logic.
  • A program is a set of predicates, i.e. rules
    governing the problem.
  • Either the truthfulness of a given formula or the
    deduction of new formulae results from running a
    logic program.
  • For example, prolog.

29
Example in Prolog
  • Finding the greatest common divisor between two
    elements

gcd(U,V,U) - V0. gcd(U,V,X) - Vgt0,
Y is U mod V, gcd(V,Y,X).
30
Special-Purpose Languages
  • Shell, Awk, Perl, Python
  • System administration
  • Program configuration
  • Postscript, Tex, RTF
  • Text and document setting
  • HTML, XML
  • Markup Language

31
Example in Perl
  • Make up one pdf file from separate postscript
    files.

This script takes as input the desired output
filename (without the extension) and the
number of input files. It is assumed that the
input filenames are of the form 1.ps 2.ps ...
99.ps and so on and so forth. It then combines
all postscript files into one file with a .ps
extension. Finally, it will generate the pdf
version of the postscript file. Docs_Dir
'C\\Program Files\\ScannerU\\' OutputFile
ARGV0 NumOfInputs ARGV1 FileList
"" for (i 1 i lt NumOfInputs i i 1)
FileList FileList . i . ".ps
" chdir(Docs_Dir) system("gswin32c -dNOPAUSE
-sDEVICEpswrite -dBATCH -sOutputFile" .
OutputFile . ".ps " . FileList) system("ps2pdf
-r720 " . OutputFile . ".ps " . OutputFile .
".pdf ")
32
Language Evaluation Criteria
  • Readability
  • The most important criteria
  • Factors
  • Overall simplicity
  • Too many features is bad
  • Multiplicity of features is bad
  • Orthogonality
  • Makes the language easy to learn and read
  • Meaning is context independent
  • Control statements
  • Data type and structures
  • Syntax considerations
  • Writability
  • Factors
  • Simplicity and orthogonality
  • Support for abstraction
  • Expressivity

33
Language Evaluation Criteria (cont.)
  • Reliability
  • Factors
  • Type checking
  • Exception handling
  • Aliasing
  • Readability and writability
  • Cost
  • Categories
  • Programmer training
  • Software creation
  • Compilation
  • Execution
  • Compiler cost
  • Poor reliability
  • Maintenance
  • Others portability, generality, well-definedness

34
Language Design Trade-offs
  • Reliability versus cost of execution
  • Writability versus readability
  • Flexibility versus safety

35
Layered View of a Computer
36
Implementation Methods
  • Compilation
  • Interpretation
  • Hybrid Implementation Systems

37
Compilation
  • Translate high-level program to machine code
  • Slow translation
  • Fast execution

38
Interpretation
  • No translation
  • Slow execution
  • Usually found in functional and logic-based
    programming languages.

39
Hybrid Implementation Systems
  • Small translation cost
  • Medium execution speed

40
Programming Environments
  • The collection of tools used in software
    development
  • UNIX
  • An old operating system and tool collection
  • Borland JBuilder
  • A PC environment for Java
  • Smalltalk
  • A language processor/environment
  • Microsoft Visual C
  • A large, complex visual environment
Write a Comment
User Comments (0)
About PowerShow.com