Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programming Language Design Concepts

Similar presentations


Presentation on theme: "Programming Language Design Concepts"— Presentation transcript:

1 Programming Language Design Concepts
Assist.Prof. Tugba Onal-Suzek

2 CENG2002 Instructor: Tugba Onal-Suzek (substituting Izzet Hoca temporarily) Teaching Assistant: Erdem Turk Office: E1-10 Lecture Hours: Fri 13:30-16:20 (C105) Recitation Hours (C106): Thu:15:30-17:30 Course Web page: Textbook: ptsBook.pdf

3 Grading Midterm 40% Attendance and Quizes 10 % Final 50%
Attendance is mandatory. If you miss 5 classes, you get 0 attendance point If you miss 6 classes, your grade is TT Final %

4 Policies Academic honesty is required in all work
We will talk about Plagiarism briefly today Exams are closed book , but you are allowed 1 page cheat-sheet

5 Tentative Syllabus Feb 10: Programming Languages concepts and paradigms, syntax, semantics, pragmatics, history, Values(primitive only) Feb 17: Values and Types: primitive, composite, recursive types, type systems Feb 24: Expressions Mar 3 : Variables and Storage Mar 10: Bindings and Scope Mar 17 : Procedural Abstraction Mar 24: Data Abstraction Mar 31 and on: To Be Determined!

6 How do we classify life? Taxonomy!!!
Placing objects, e.g., life, into some type of order. E.g., the forelimb bones of a bird, bat, and cat

7 How do we classify Programming Languages?
Procedural Languages? C, Perl Functional Languages? Haskell, ML Object Oriented Languages? Java, C++ Scripting Languages? Javascript, Shell script Mark-up Languages? HTML, XML They are languages, but are they really programming languages? Why? Why not? Hybrid Python, Ruby, Perl Low-level vs High-level Languages? Assembler vs Java

8 Diversity of Programming Languages

9 Which Programming Languages is BEST???
D Is Bach or Mozart best composer? Is Mazda or Mercedes best car? Is Messi or Ronaldo best player? Popularity of Programming Languages: languages

10 1 Introduction Programming linguistics:
concepts and paradigms syntax, semantics, and pragmatics language processors. Historical development of programming languages and paradigms.

11 Programming linguistics
Programming linguistics is the study of programming languages (PLs). This is by analogy with linguistics, the study of natural languages (NLs): Both PLs and NLs have syntax (form) and semantics (meaning). However, NLs are far broader, more expressive, and more subtle than PLs. Also, linguists are limited to studying existing NLs. Computing scientists can design, specify, and implement new PLs.

12 Properties A PL must be universal – capable of expressing any computation. A language without iteration or recursion is not universal. A language of recursive functions (and nothing else) is universal. A PL should be reasonably natural for expressing computations in its intended application area. A PL must be implementable – it must be possible to run every program on a computer. A PL should be capable of acceptably efficient implementation.

13 Concepts Concepts are building blocks of programs and PLs:
values and types variables and storage bindings and scope procedural abstraction data abstraction generic abstraction (not covered in this course) concurrency (not covered in this course).

14 Paradigms A paradigm is a style of programming, characterized by a particular selection of key concepts. Imperative programming: variables, commands, procedures. Object-oriented (OO) programming: objects, methods, classes. Concurrent programming: processes, communication. Functional programming: values, expressions, functions. Logic programming: assertions, relations.

15 Syntax, semantics, and pragmatics
A PL’s syntax is concerned with the form of programs: how expressions, commands, declarations, and other constructs must be arranged to make a well-formed program. A PL’s semantics is concerned with the meaning of (well- formed) programs: how a program may be expected to behave when executed on a computer. A PL’s pragmatics is concerned with the way in which the PL is intended to be used in practice. Pragmatics include the paradigm(s) supported by the PL.

16 Language processors A language processor is a system for processing programs either executing them or preparing them for execution. Language processors include: compilers interpreters source-code editors symbolic debuggers.

17 Historical development (1)
1955 1960 1965 1970 1975 1980 OO imperative concurrent 1985 functional Fortran Algol60 PL/I Lisp Cobol ML Simula C Pascal Algol68 Smalltalk C++ Ada83 Modula

18 Historical development (2)
1980 1985 1990 1995 2000 2005 OO imperative concurrent functional Ada83 C++ Haskell Ada95 Java C#


Download ppt "Programming Language Design Concepts"

Similar presentations


Ads by Google