Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.

Slides:



Advertisements
Similar presentations
Introduction to Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Advertisements

Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
Programming Languages Structure
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Organization of Programming Languages (CSE452)
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
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)
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
314450: PROGRAMMING PARADIGMS Teaching scheme: Examination Scheme: Lectures: 3 Hours/Week Theory: 100 Marks OBJECTIVE: To understand the basic building.
PROGRAMMING LANGUAGES The Study of Programming Languages.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
Programming Languages Introduction. Overview Motivation Why study programming languages? Some key concepts.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
CS 363 Comparative Programming Languages
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
Programming Languages Summer
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
COP 4020 Programming Langauges Dr. Roy Levow –Office hours: M 5-6:30 – –
1 Programming Languages Introduction. 2 Overview Motivation Why study programming languages? Some key concepts.
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
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Programming Languages – An introduction. There are 10 types of people in the world −Those who understand binary −Those who don’t.
Professor Dolores Zage n Computer Science Department n n RB 443 n (765) n dmz/
Analysis of Programming Language Vladimir Viies Lembit Jürimägi Tallinna.
Programming Languages What is a programming language? –systematic notation by which we describe computational processes to others –notation for description.
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
Introduction 1 강의 내용 및 방법  접근방법 –Lambda Calculus, Proof of Correctness 은 강의에서 제 외  원하는 학생에게만 특별히 따로 강의함  리포트 –2 주일에 프로그램 1 개 정도, term project 는 없음 –
Chapter 3 - Language Design Principles
CS 331, Principles of Programming Languages Chapter 1.
What Makes a Good Language? Lecture 3 The first formal languages n The evolution of writing systems to record language reveals the first steps toward.
Computer Programming CONTENTS Introduction to Operating Systems Introduction to programming languages Introduction to perl programming language Programming.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Programming Language Design Issues Programming Languages – Principles and Practice by Kenneth C Louden.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
Programming Language Paradigms ITSK2314 Lecture 3.
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.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Language History and Evolution
Introduction to programming languages, Algorithms & flowcharts
Introduction to programming languages, Algorithms & flowcharts
PROGRAMMING LANGUAGES
Chapter 1 Reasons to study concepts of PLs Programming Domains
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Programming Language History and Evolution
Introduction to programming languages, Algorithms & flowcharts
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Ada – 1983 History’s largest design effort
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
CSE 341 Programming Languages Autumn 2001
CSE 341 Programming Languages Autumn 2003
CSE 341 Programming Languages Autumn 2002
CSE 341 Programming Languages Spring 2003
Principles of Programming Languages
CSE 341 Programming Languages Autumn 2003
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
강의 내용 및 방법 작년 강의 결과에 대한 설명 올해 접근방법 리포트 시험
Programming Languages, Preliminaries, History & Evolution
Reasons To Study Programming Languages
Presentation transcript:

Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages

References: 2 Principles of Programming Languages, Bruce J. MacLennan Programming Languages Concepts and Constructs, Ravi Sethi Programming Languages Design and Implementation, Terrence Pratt, Marvin Zelkowitz Programming Languages Concepts, Carlo Ghezzi, Mehdi Jazayeri Concepts in Programming Languages, John C. Mitchel

Grading 3 MidTerm 30% Final 40% Quiz 10% Programming Project 15% Attendance 5% % Final less than 50% -> You fail the course

4 Class Collaboration Attendance Contributing in the class discussions, if any Be active, but not too much

The Study of Programming Languages 5 The purpose of language is simply that it must convey meaning. (Confucius) That which can be said, can be said clearly. (Wittgenstein,1963) A program is a specification of a computation. A programming language is a notation for writing programs.(Sethi,89)

What is a programming language? 6 A language that is intended for the expression of computer programs and that is capable of expressing any computer program.

How are programming languages different? 7 According to our definition they are all theoretically equally powerful. But not equally easy to use! Theoretical power <> Practical power

Why study programming languages? 8 Programming languages are important for students in all disciplines of computer science because they are the primary tools of the central activity of computer science : programming. There is an idea: the structure of language defines the boundaries of thought.

Why study programming languages? (cont.) 9 To improve your ability to develop effective algorithms and to improve your use of your existing programming language. O-O features, recursion Call by value, call by reference To increase your vocabulary of useful programming constructs. To allow a better choice of programming languages. To make it easier to learn a new language. To make it easier to design a new language.

A short history of programming Languages : LISP, FORTRAN 1970 : Ada, C, Pascal, Prolog, Smalltalk 1980 : C++, ML During 1970 : a lot of PLs were designed. Early languages: Numerically based languages. (FORTRAN:55,ALGOL:58) Business languages. (COBOL:60) Artificial intelligence languages. (LISP,Prolog) Systems languages. ( C:70)

A short history of programming languages (cont.) 11 50s and 60s : Early high level languages : FORTRAN, COBOL, ALGOL60 Early mathematical based languages : LISP, APL, SNOBOL General-purpose language : PL/1 Next leap forward: Algol68, SIMULA67, BASIC 70s: High level and structured programming: Pascal Systems programming: C, modula-2 Logical programming: Prolog Improvement of functional programming: Scheme

A short history of programming languages (cont.) 12 80s: Development of functional programming: ML, Miranda Need for reliability and maintainability: Ada Object-oriented programming: Smalltalk, C++ 90s: Fourth-generation languages Productivity tools (such as spreadsheets) Visual languages : Delphi Scripting languages : Perl Expert systems shells Network computing : Java

Influences on programming languages 13 Computer capabilities Hardware and OS Applications Wide area of applications Programming methods Multiprogramming, interactive systems, data abstraction, formal semantics,O-O programming,… Implementation methods Theoretical studies Standardization

Attributes of a good language 14 Clarity, simplicity, and unity Have a minimum number of different concepts, with the rules for their combination, simple and regular (conceptual integrity). readability Orthogonality Being able to combine various features of a language in all possible combinations. Naturalness for the application Support for abstraction

Attributes of a good language 15 Ease of program verification Proof of correctness, desk checking, test Simplicity of semantic and syntax Programming environment Portability of programs Cost of use Program execution Program translation Program creation, testing, and use Program maintenance

Attributes of a good language (another view: to make a software reliable, maintainable, efficient) Jazayeri 16 Reliability Writability Readability Simplicity Safety (no goto, no pointers) Robustness (undesired events can be trapped, like arithmetic overflow, invalid inputs) Maintainability Factoring (modularity) Locality Efficiency