Programming Languages

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Advertisements

1 Scheme and Functional Programming Aaron Bloomfield CS 415 Fall 2005.
Adapted from Scott, Chapter 6:: Control Flow Programming Language Pragmatics Michael L. Scott.
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Overview of Programming Paradigms
High-Level Programming Languages
Compiler Design Lexical Analysis Syntactical Analysis Semantic Analysis Optimization Code Generation.
Programming Languages Structure
The environment of the computation Declarations introduce names that denote entities. At execution-time, entities are bound to values or to locations:
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
Programming Paradigms Imperative programming Functional programming Logic programming Event-driven programming Object-oriented programming A programming.
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.
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
CS 363 Comparative Programming Languages
Python Mini-Course University of Oklahoma Department of Psychology Day 2 – Lesson 6 Program Design 4/18/09 Python Mini-Course: Day 2 - Lesson 6 1.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Chapter 1 - Introduction
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
Basic Semantics Associating meaning with language entities.
Programming Languages Meeting 14 December 9/10, 2014.
CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.
Programming Languages
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
C H A P T E R T H R E E Type Systems and Semantics Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Software Engineering Algorithms, Compilers, & Lifecycle.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Language Paradigms CS655.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Paradigms, Software Architectural Patterns, and MVC CS 378 – Mobile Computing for iOS Dr. William C. Bulko.
Programming Language History and Evolution
Programming Languages 2nd edition Tucker and Noonan
CSC 533: Programming Languages Spring 2016
CSC 533: Programming Languages Spring 2015
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Why study programming languages?
Representation, Syntax, Paradigms, Types
An Introduction to Programming
Types of Programming Languages
FORTRAN 04 February 1999; CS655.
Programming Language History and Evolution
Chap. 6 :: Control Flow Michael L. Scott.
Midterm Review In Text: Chapters 1-3, 5, 15.
Ada – 1983 History’s largest design effort
Representation, Syntax, Paradigms, Types
Chap. 6 :: Control Flow Michael L. Scott.
Programming Languages 2nd edition Tucker and Noonan
Parameter Passing Actual vs formal parameters
Final Review In Text: Chapters 1-3, 5-12,
Representation, Syntax, Paradigms, Types
Review CSE116 2/21/2019 B.Ramamurthy.
Final Review In Text: Chapters 1-3, 5-16.
Principles of Programming Languages
Overview of Programming Paradigms
Representation, Syntax, Paradigms, Types
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
An Introduction to Programming
Programming Languages and Paradigms
Final Review In Text: Chapters 1-3, 5-16.
Some Programming Paradigms
Presentation transcript:

Programming Languages CS 430/CS 530 Fall 2004 Professor Adams

Programming Languages facilitate the expression and communication of ideas between people have a narrower expressive domain than natural languages because they only communicate algorithmic ideas enable communication of algorithms between people and computers Think of all the ways I could tell you to “leave me alone” and the nuances of each. Narrower expressive domain doesn’t have those nuances.

Required definition of an Algorithm An algorithm is an unambiguous, step-by-step procedure for solving a problem in a finite amount of time using a finite amount of space

Categories of Language Design Principles Syntax context-free grammar Type systems and semantics values that programs can manipulate meaning of programs Memory management Exception handling

Memory Management static memory dynamic memory stack heap lifetime of objects techniques for garbage collection & storage reclamation

Exceptions unexpected input unexpected divide by zero unexpected attempt to create a new block of space on the heap

Programming Paradigms Imperative Object-oriented Functional Logic (declarative) programming Event-driven programming Concurrent programming

Imperative Programming Explicit series of steps calculates, retrieves input, produces output Procedural abstraction assignments, loops, sequences, conditionals Major imperative languages Fortran (1954, IBM, John Backus), Cobol (Codasyl Committee), C (designed for and implemented on the UNIX operating system on the DEC PDP-11 by Dennis Ritchie) , C++, Ada

Object-Oriented Programming Program is a collection of objects which pass messages to one another to transform their states Object modeling, classification, inheritance are fundamental building blocks Major OO languages Smalltalk (Xerox PARC - Adele Goldberg & Alan Kay 1970’s), Java, C++, Eiffel

Functional Programming Program is a collection of mathematical functions input (domain) result (range) Functions interact & combine using functional composition, conditionals, recursion Major functional languages Lisp (John McCarthy – M.I.T. – late 50’s), Scheme (block structure, lexical scoping, etc.), Haskell, ML

Logic (declarative) Programming Program is a series of statements about what should happen rather than how it should be done Expresses non-determinism Major logic programming language Prolog(Alain Colmerauer – Universite d’Aix Marseilles – 1972)

Event-driven Programming Program is a continuous loop that responds to unpredictably ordered events Events originate from user actions (mouse clicks or keystrokes) sensors on a robot Major event-driven languages include Visual Basic, Java

Concurrent Programming Program is a collection of cooperating processes Concurrent Programming Languages SR, Linda, High Performance Fortran