Ada – 1983 History’s largest design effort

Slides:



Advertisements
Similar presentations
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Advertisements

Computers Are Your Future
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Computers Are Your Future © 2006 Prentice Hall, Inc.
Programming Languages Structure
Multiple Tiers in Action
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Programming Language Concepts
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
CS102 Introduction to Computer Programming
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
The Evolution of the Object Model OOAD. The Evolution of the Object Model software engineering trends observed The shift in focus from programming-in-the-small.
ISBN Chapter 2 Evolution of the Major Programming Languages.
Programming Languages 1.07a.  A computer program is a series of instructions that direct a computer to perform a certain task.  A programming language.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
CS 403 Programming Language Theory Class 3 - August 31, 2000.
ISBN Chapter 2 Evolution of the Major Programming Languages.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
1 3. Computing System Fundamentals 3.1 Language Translators.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
ISBN Chapter 2 Evolution of the Major Programming Languages.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
Programming Language 1. Programming language A programming language is a machine-readable artificial language designed to express computations that can.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
1 CS Programming Languages Class 04 September 5, 2000.
Introduction to Programming Languages © 2005 Prentice Hall, Inc. CXC IT Unit 2: Intro. to Programming.
Evolution of the Major Programming Languages Chapter 2: Evolution of the Major Programming Languages Lectures # 5.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Website Source Code Free Download.
Programming Language History and Evolution
Object Oriented Programming in
A BRIEF HISTORY OF PROGRAMMING LANGUAGES
The language focusses on ease of use
Concepts of Programming Languages
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?
Chapter 1 Introduction.
Basic 1964 PC general purpose Imperative Small Easy to use.
Chapter 1 – Introduction to Computers, the Internet, and the Web
Introduction to programming languages, Algorithms & flowcharts
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
Introduction of Programming Languages
UCSC All rights reserved
Chapter 1 Introduction.
Lecture 2 of Computer Science II
Types of Programming Languages
Programming Language History and Evolution
Evolution of the Major Programming Languages
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Programming Languages
Programming Language Design
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Introduction to Computer Programming
and Program Development
Cobol Design goals: Problems
Principles of Programming Languages
Overview of Programming Paradigms
Java History, Editions, Version Features
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Object-Oriented Programming
School of Computer & Information Engineering,
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

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

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

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

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

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

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

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

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

Discovery and Description Development of symbolic assembly language, macro-assembly, 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

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

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?

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