Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Similar documents
Introduction. A. Bellaachia Page: 1

2. Evolution of the Major Programming languages

Chapter 2. 5 * B => A V 6 7 (subscripts) S 1.n 1.n (data types)

8/23/18. Programming Language Genealogy The Evolution of Programming Languages. Zuse s Plankalkül. Plankalkül Syntax. Machine Code

Chapter 2. Evolution of the Major Programming Languages

Chapter 2. Pseudocodes: Speedcoding. 2.2 Minimal Hardware Programming: Pseudocodes. Evolution of the Major Programming Languages

Evolution of the Major Programming Languages

CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan

Chapter 2. Evolution of the Major Programming Languages ISBN

Chapter 2. Evolution of the Major Programming Languages

Chapter 2 Evolution of the Major Programming Languages Chapter 2 Topics

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

Chapter 2. Evolution of the Major Programming Languages ISBN

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

Chapter 2. Chapter 2

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.

Final-Term Papers Solved MCQS with Reference

Principles of Programming Languages. Lecture Outline

Low-Level Languages. Computer Programs and Programming Languages

CS2303 C14 Systems Programming Concepts. Bob Kinicki

Discovering Computers 2008

Programming Languages, Summary CSC419; Odelia Schwartz

Logic Programming II & Revision

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction

Introduction to Java Programming

Programming Paradigms

Com S 541. Programming Languages I

Concepts of Programming Languages

Programming Language Concepts 1982, 1987, Outline. Period

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Concepts in Programming Languages

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING

Object Oriented Paradigm

SOFTWARE ARCHITECTURE 6. LISP

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

Lecture 1: Course Introduction

Compiling and Interpreting Programming. Overview of Compilers and Interpreters

CSCI 3136 Principles of Programming Languages

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Lecturer: William W.Y. Hsu. Programming Languages

Comp 333: Concepts of Programming Languages Fall 2016

Continuations provide a novel way to suspend and reexecute

Chapter 1. Preliminaries

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current

COP 3402 Systems Software. Lecture 4: Compilers. Interpreters

Lecture 1: Course Introduction

Programming Languages FILS Andrei Vasilateanu

Evolution of PL s. EECS 476, Prog. Lang. Design/ page 1

Programming Methods. Simple things should be simple, complex things should be possible.

Early computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

Chapter 9 :: Data Abstraction and Object Orientation

Programming Languages 1. Introduction. Oscar Nierstrasz

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo

Thanks! Review. Course Goals. General Themes in this Course. There are many programming languages. Teaching Assistants. John Mitchell.

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Discovering Computers Chapter 13 Programming Languages and Program Development

Programmiersprachen (Programming Languages)

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains

Imperative Programming

CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming

Lecture 2. A Historical View

What is a programming language?

Chapter 10 :: Data Abstraction and Object Orientation

INSTITUTE OF AERONAUTICAL ENGINEERING

G Programming Languages - Fall 2012

Why are there so many programming languages?

Seminar in Programming Languages

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Introduction to Programming

Informal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility

Design & Implementation Overview

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

St. MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

Languages october 22, 2017 Éric Lévénez < FORTRAN III end-1958 FORTRAN II FORTRAN I october 1956

LECTURE 1. Overview and History

CS 330 Lecture 18. Symbol table. C scope rules. Declarations. Chapter 5 Louden Outline

Compilation I. Hwansoo Han

Which of the following is not true of FORTRAN?

Chapter 3:: Names, Scopes, and Bindings (cont.)

! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified

What is programming? Elements of Programming Languages. From machine code to programming languages. What is a programming language?

Compilers Project Proposals

Introduction to Computer Science I

G Programming Languages Spring 2010 Lecture 6. Robert Grimm, New York University

Programming Languages

Chapter 1: An Overview of Computers and Programming Languages. Objectives. Objectives (cont d.) Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

Transcription:

Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1

Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6. Simula 67 7. Pascal 8. C 9. Prolog 2

Outline 1. Ada 2. Smalltalk 3. C++ 4. Java 5. C# 6. Scripting Language for Web 7. Programming Language Evolution 8. Software Engineering 3

Ada 1983 History s largest design effort Huge design effort, involving hundreds of people, lots of money and about eight years of designing effort Contributions: Packages - support for data abstraction Elaborate exception handling mechanism Facility for generic program units (templates) Facility for concurrency - through the tasking model Comments: Competitive design Included all that was known about software engineering and language design at that time First compilers were very difficult; The first usable compiler came nearly five years after the language design was completed 4

Smalltalk - 1980 Developed at Xerox PARC, initially by Alan Kay, later by Adele Goldberg First full implementation of an object-oriented language It had data abstraction, inheritance, and dynamic type binding Purest object-oriented language yet! Pioneered the graphical user interface everyone now uses 5

C++ - 1985 Developed at Bell Labs by Stroustrup Evolved from C and SIMULA 67 It has facilities for object-oriented programming, taken partially from SIMULA 67 and were added to C Also has exception handling Its a large and complex language, in part because it supports both procedural and OO programming Rapidly grew in popularity, along with OOP ANSI standard approved in November, 1997 6

Java - 1995 Developed at Sun in the early 1990s Based on C++ Significantly simplified version of C++ Supports only OOP Eliminated multiple inheritance, pointers, structs, enum types, operator overloading, goto statements Includes support for applets and a form of concurrency 7

C#- 2002 Part of the.net framework Language for component-based software development Based upon C++ and Java Took some ideas from Visual Basic Intermediate Language (IL) Just-in-time compiler Brought back pointers, structs, enum types, operator overloading, goto statement Has safer enum types, more useful struct types, modified switch statement Some other additions 8

Scripting Languages for Web Address the need for computations associated with HTML documents JavaScript is used on the client side and PHP is used on the server side JavaScript client side Primary objective is to create dynamic HTML documents and check validity of input forms It is usually embedded in an HTML document Its not related to Java 9

Scripting Languages for Web PHP (Personal Home Page) server side Interpreted on the Web Server when the HTML document in which it is embedded is requested by the browser Often produces HTML code as an output Similar to JavaScript Allows simple access to HTML form data makes form processing easier It provides support for many different database management systems and provides web access to databases 10

Programming Language Evolution 50 s was the time of discovery and description of programming language concepts We had empirical approach Programming languages were regarded solely as tools for facilitating the specification of programs rather than as interesting objects of study in their own right 11

Discovery and Description Development of symbolic assembly language, macroassembly, FORTRAN, Algol 60, COBOL and Lisp Discovery of many basic implementation techniques Symbol table construction and look-up Stack algorithms for evaluating arithmetic expressions Activation record stack Marking algorithms for garbage collection 12

Analysis and Elaboration 60 s Analysis for the purpose of constructing models and theories of programming languages PL/1, Simula, Algol 68, Snobol Elaboration of earlier languages An attempt to achieve greater richness by synthesis of existing features and generalization Resulted in greater complexity Formal languages and automata theory with applications to parsing and compiler theory Theory of operational and mathematical semantics were developed Language definition techniques were developed Basic ideas of program correctness and verification Lambda Calculus for abstract structures 13

Programming Language Evolution Effective software technology 70 s Software Engineering Support structured design 1980 s Support for SE continued 1990 s and 2000 s Support for OOP and Internet 2010 s Aspect Oriented Programming? 14

Software Engineering 70 s From pure research to practical management of the environment Decreasing hardware cost and increasing software cost resulted in breaking complexity barrier Development of tools and methodologies for controlling the complexities, cost and reliability of large programs Structured programming, modular design and verification Verifiable languages Pascal, Modula 15

Summary Ada Smalltalk C++ Java C# Scripting Language for Web Programming Language Evolution Software Engineering 16