PROGRAMMING LANGUAGES The Study of Programming Languages.

Slides:



Advertisements
Similar presentations
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Advertisements

Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Programming Paradigms and languages
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
CSI 3125, Preliminaries, page 1 Programming languages and the process of programming –Programming means more than coding. –Why study programming languages?
Computers Are Your Future
Chapter 1: Preliminaries
Programming Languages WHY MORE? Wasn’t ONE ENOUGH? Introduction to CS260.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Overview of Programming Paradigms
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Reasons to study concepts of PL
Computers: Tools for an Information Age
Programming Languages Structure
Chapter 16 Programming and Languages: Telling the Computer What to Do.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Introduction to Programming G50PRO University of Nottingham Unit 1 : Introduction Paul Tennent
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
1 Shawlands Academy Higher Computing Software Development Unit.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
CSC-115 Introduction to Computer Programming
CS101 Introduction to Computing Lecture Programming Languages.
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 – –
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
1 Programming Languages Marjan Sirjani Course web site:
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.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
SE: CHAPTER 7 Writing The Program
INTRODUCTION TO COMPUTING CHAPTER NO. 04. Programming Languages Program Algorithms and Pseudo Code Properties and Advantages of Algorithms Flowchart (Symbols.
ISBN Chapter 1 Preliminaries. Copyright © 2009 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
The Software Development Process
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Compiler Construction (CS-636)
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
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.
Introduction to programming Carl Smith National Certificate Year 2 – Unit 4.
Computer Programming CONTENTS Introduction to Operating Systems Introduction to programming languages Introduction to perl programming language Programming.
 Programming - the process of creating computer programs.
 Computer Languages Computer Languages  Machine Language Machine Language  Assembly Language Assembly Language  High Level Language High Level Language.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
CSC141 Introduction to Computer Programming Programming Language.
Software Engineering Algorithms, Compilers, & Lifecycle.
Programming Language Basics. What is a Programming Language? “A computer, human-created language used to write instructions for a computer.” “An artificial.
Algorithms and Problem Solving
Concepts of Programming Languages
Why study programming languages?
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
CS101 Introduction to Computing Lecture 19 Programming Languages
1.1 Reasons to study concepts of PLs
CSCI/CMPE 3334 Systems Programming
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Programming Language Basics
Principles of Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

PROGRAMMING LANGUAGES The Study of Programming Languages

OBJECTIVES At the end of the lesson, the student must be able to: 1.Define what is programming language 2.Identify the reasons of studying programming language 3.Identify the history of programming languages 4.Determine the criteria for a good p.l.

PROGRAMMING LANGUAGE Any notation for the description of algorithms and data structures Requires that programming language is implemented on computers A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human communication. (Wikipedialanguagecomputationsmachinecomputerprograms algorithms EX. PASCAL, C, JAVA, C++, VISUAL BASIC, ADA, LISP, FORTRAN, COBOL, PROLOGUE

WHY STUDY PROGRAMMING LANGUAGES? 1.To improve your understanding of the language you are using. – Many languages provide features when used properly are of benefit to the programmer but when used improperly may waste large amounts of computer time or lead the programmer into time-consuming logical errors. Ex. Use of array and single variable data storage

WHY STUDY PROGRAMMING LANGUAGES? 2. To increase your vocabulary of useful programming constructs. – Language or the syntaxes/commands aid the programmer to implement the logic of the program – In searching for the data and program structures suitable to the solution of a problem, one tends to think only of structures that are immediately expressible in the languages with which one is familiar. – By studying the constructs provided by the wide range of languages and the manner in which these constructs are implemented, the programmer increases his programming “vocabulary”.

WHY STUDY PROGRAMMING LANGUAGES? 3. To allow better choice of programming language Ex. C and Java 4.To make it easier to learn a new language -A thorough knowledge of a variety of programming language constructs and implementation techniques allows the programmer to learn constructs and implementation techniques allows the programmer to learn a new language more easily when the need arises

WHY STUDY PROGRAMMING LANGUAGES? 5.To make it easier to design a new language – The user interface can be designed by a programmer if he has a thorough knowledge of the p.l. – The user interface consists of the commands and data formats that are provided for the user to communicate with the program – The aspect of program design is often simplified if the programmer is familiar with a variety of constructs and implementation methods from ordinary programming languages.

INFLUENCES ON THE EVOLUTION OF LANGUAGE DESIGNS 1.COMPUTER HARDWARE AND OPERATING SYSTEM – Evolved from small, slow, and costly vacuum- tube machines to microcomputers. – At the same time, layers of microprogram and operating system software have been inserted between the programming language and the underlying computer hardware. This factors have influenced both the structure and the cost of using the features of high-level languages.

INFLUENCES ON THE EVOLUTION OF LANGUAGE DESIGNS 2. Applications -from the original concentration on critical, military, scientific, business, and industrial applications in the 1950’s to educational, entertainment and other applications in the area of human activities seen today. - The requirements of these new application areas affect the designs of new languages and the revisions and extensions of older ones.

INFLUENCES ON THE EVOLUTION OF LANGUAGE DESIGNS 3.PROGRAMMING METHODS – Language designs have evolved to reflect our changing understanding of good methods for writing large and complex programs and to reflect the changing environment in which programming is done.

INFLUENCES ON THE EVOLUTION OF LANGUAGE DESIGNS 5.THEORETICAL STUDIES – Research into the conceptual foundations for language designs and implementations, using formal mathematical methods, has deepened our understanding of the strengths and weaknesses of language features and has thus influenced the inclusion of these features in new language designs

INFLUENCES ON THE EVOLUTION OF LANGUAGE DESIGNS 6.Standardization. - the need for “standard” language that can be implemented easily on a variety of computer systems and that allow programs to be transported from one computer to another has provided strong conservative influence on the evolution of language history

WHAT MAKES A GOOD LANGUAGE? 1.Clarity, simplicity, and unity of language concept – PL’s provides both the conceptual framework for thinking about algorithms and a means of expressing those algorithms for machine execution – The language should be an aid to the programmer before he reaches the actual coding stage in programming. – It should provide him with clear, simple, and unified set of concepts that he can use as primitives in developing algorithms – It is desirable to have a minimum number of different concepts, with the rules for their combination being as simple and regular as possible

WHAT MAKES A GOOD LANGUAGE? 2. Clarity of program syntax. – Syntax greatly affects the ease with which the program may be written, tested, and later understood and modified. – Some syntaxes are easy to write but difficult to be modified – It is important that a syntax is not misleading or must be error-prone to reflect the underlying logical structure of the algorith – Structured and object oriented programming languages are easy to implement and understand compared to the first generation languages

WHAT MAKES A GOOD LANGUAGE? 3. NATURALNESS OF APPLICATIONS. -The language should provide appropriate data structures, operations, control structures, and a natural proliferation of languages is just this need for naturalness

WHAT MAKES A GOOD LANGUAGE? 4.SUPPORT FOR ABSTRACTION – There is always a gap remaining between the abstract data structures and operations that characterize the solution to a problem and the particular primitive data structures and operations built into a language. – The language should allow data structures, data types, and operations to be defined and maintained as self-contained abstraction, so the programmer may use them in other parts of the program knowing only their abstract properties, without concern for the details of their implementations.

What Makes a GOOD LANGUAGE? 5.PROGRAMMING ENVIRONMENT – The technical structure of the programming language is only one aspect affecting its utility – The presence of a programming environment may make a programming language easier to work than a stronger language that has little external support Ex. compilers, text editors and other utilities for the pl’s must be available. -other pl’s are licensed while others are for free

WHAT MAKES A GOOD LANGUAGE? 6. PORTABILITY OF THE PL. 7.COST OF USE 1.COST OF PROGRAM EXECUTION 2.COST OF PROGRAM TRANSLATION 3.COST OF PROGRAM CREATION,TESTING, AND USE 4.COST OF PROGRAM MAINTENANCE

Read/study PL PROCESSORS – STRUCTURE AND OPERATIONS OF A COMPUTER – TRANSLATORS AND SOFTWARE SIMULATED COMPUTERS – SEMANTICS AND SYNTAX AND ITS IMPLEMENTATIONS