Programming Languages, Preliminaries, History & Evolution

Slides:



Advertisements
Similar presentations
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Advertisements

Chapter 1: Preliminaries
CS 330 Programming Languages 09 / 07 / 2006 Instructor: Michael Eckmann.
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.
CS 354 Overview. Copyright © 2007 Addison-Wesley. All rights reserved. 1–2 Course Topics What is a programming language? What features do programming.
CS 330 Programming Languages 09 / 06 / 2007 Instructor: Michael Eckmann.
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.
CSE305 Programming Languages Notes are based primarily on Sebesta text. Quotes are from Sebesta text, unless otherwise noted. Sources other than Sebesta.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
Programming Language Concepts
Chapter 1 Preliminaries. Copyright © 2012 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of Programming Languages.
Language Evaluation Criteria
(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
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
ICS 313 Fundamentals of Programming Languages Instructor: Abdul Wahid Wali Lecturer, CSSE, UoH
Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures.
ISBN CS 354 Preliminaries. Copyright © 2006 Addison-Wesley. All rights reserved.1-2 Course Topics What is a programming language? What features.
ISBN Chapter 1 Preliminaries. Copyright © 2015 Pearson. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of Programming.
ISBN Chapter 1 Preliminaries. Copyright © 2009 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
ISBN Chapter 1 Preliminaries. Copyright © 2006 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Chapter 1 Preliminaries.
Concepts of Programming Languages
CSCI 3370: Principles of Programming Languages Introduction
Why study programming languages?
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
PROGRAMMING LANGUAGES
Chapter 1 Reasons to study concepts of PLs Programming Domains
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
CS 3304 Comparative Languages Fall 2011
Chapter 1 Introduction.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
CS 3304 Comparative Languages Fall 2011
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Reasons To Study Programming Languages
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Presentation transcript:

Programming Languages, Preliminaries, History & Evolution Imran Rashid CTO at ManiWeber Technologies

Outline Reasons for studying programming languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language Design Tradeoffs Implementation Methods Programming Environments

Reasons for studying programming languages

Reasons for studying programming languages Increased capacity to express ideas Programming language constrains Control structures Data structures Abstractions that can be used Awareness of language features reduces these limitations Features of one language may be simulated in another Study of PLC builds appreciation for language features and encourages their use Improved background for choosing languages Many programmers have had little formal CS training or training in the distant past

Reasons for studying programming languages Programmers tend to use what they are familiar with, even if it is not suitable for the task Familiarity with variety of languages allows for more informed language choices Ability to learn new languages A thorough understanding of PLC makes it easier to see how language concepts are incorporated in the language being learned Understanding data abstraction facilitates learning how to construct ADTs in C++ or Java Understanding PLC terminology makes it easier to understand manuals for programming languages and compilers

Reasons for studying programming languages Understanding implementation Understanding language implementation issues leads to Understanding why languages are designed the way they are Ability to use a language more intelligently Ability to use a language more efficiently when there is a choice among several constructs: Example: arrays vs. array lists Designing new languages Programmers occasionally design languages of some kind or another Software system user interface Interface design involves PLC techniques like parsing

Reasons for studying programming languages Language design influences complexity of the algorithms that translate it Overall advancement of computing Why does a particular language become popular? Best suited to solving problems in a particular domain Those in positions to choose are familiar with PLC Those in positions to choose are not familiar with PLC ALGOL 60 vs FORTRAN (1960s) ALGOL more elegant, better control statements Programmers found ALGOL language description difficult to read, concepts difficult to understand FORTRAN was not that elegant than ALGOL FORTRAN was easy to use

Programming Domains

Programming Domains Scientific Apps Business Apps A.I. FORTRAN, ALGOL Business Apps COBOL A.I. LISP, Prolog Systems Programming C++ Scripting Languages JavaScript, Perl, PHP Special Purpose Languages

Language Evaluation Criteria

Language Evaluation Criteria Readability Overall Simplicity The difficulty in learning a new language increases with the number of components in the language Feature multiplicity negatively impacts readability C: x++; ++x; x = x+1; x += 1; Control Statements FORTRAN had no while loop, so while construct was implemented with an if statement and a restricted goto Data Types and Structures Features for user-defined data types enhance readability Syntax Considerations (e.g. compound statements) Pascal: begin..end, C: { .. }, if .. endif, loop .. endloop

Language Evaluation Criteria Writeability Simplicity Support for abstraction Expressivity For statements for counting loops (instead of while) And then, or else Boolean operators Reliability Type checking (casting or parsing) Exception handling Aliasing 2 or more ways to reference same memory cell Possible via pointers, reference parameters

Language Evaluation Criteria Costs Training programmers Writing programs Compiling programs Executing programs Language implementation system Poor reliability Maintaining programs

Influences on Language Design

Influences on Language Design Computer architecture Imperative/ Sequential languages model Von Neumann architecture LOGO, Pascal, Fortran Functional programming languages need a non-von Neumann architecture to be implemented efficiently C Language Programming methodologies Unstructured Procedural/Functional OO Singleton MVC

ASSIGNMENT Submission Date 08/09/2018 & in written form Q1: Explain the four language categories with at least on example of each category. Imperative Functional Logic Object-oriented Q2: Explain Language Design Tradeoffs. Q3: Implementation methods. Q4: Programming Environments. Reference: Chapter 1 Concepts of Programming Languages (10th Edition)

Any ?