Chapter 9: The Tower of Babel Invitation to Computer Science, Java Version, Third Edition.

Slides:



Advertisements
Similar presentations
EC-111 Algorithms & Computing Lecture #1 Instructor: Jahan Zeb Department of Computer Engineering (DCE) College of E&ME NUST.
Advertisements

Senem Kumova Metin Introduction to Programming CS 115 Introduction to Computing PART I : Computer Basics PART II: Introduction to Computing/Programming.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Computers Are Your Future
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Computers: Tools for an Information Age
Chapter 9: The Tower of Babel Invitation to Computer Science, C++ Version, Fourth Edition Additions by S. Steinfadt for SP08.
Chapter 9: The Tower of Babel Invitation to Computer Science, C++ Version, Fourth Edition Editied / additions by S. Steinfadt for SP09.
Chapter 9: The Tower of Babel
Chapter 8 The Tower of Babel. Chapter Outline Procedural languages Fortran, COBOL, PASCAL, C, Ada Object-oriented programming Special-purpose languages.
Alternative Programming Paradigms
© Prentice Hall CHAPTER 3 Computer Software.
Guide To UNIX Using Linux Third Edition
Computer Software.
Copyright 2003 Scott/Jones Publishing Brief Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
Programming In C++ Spring Semester 2013 Programming In C++, Lecture 1.
CS102 Introduction to Computer Programming
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Introduction to High-Level Language Programming
COMPUTER SCIENCE I C++ INTRODUCTION
INTRODUCTION TO WEB DATABASE PROGRAMMING
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Programming Languages: Telling the Computers What to Do Chapter 16.
Chapter Lead Black Slide Powered by DeSiaMore Powered by DeSiaMore.
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Chapter 8 High-Level Programming Languages (modified by Erin Chambers)
High-Level Programming Languages: C++
Chapter 9: The Tower of Babel Invitation to Computer Science, C++ Version, Third Edition.
UNIVERSITI TENAGA NASIONAL “Generates Professionals” CHAPTER 4 : Part 2 INTRODUCTION TO SOFTWARE DEVELOPMENT: PROGRAMMING & LANGUAGES.
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
CHAPTER 1 Overview of Programming and Problem Solving.
Introduction of C++ language. C++ Predecessors Early high level languages or programming languages were written to address a particular kind of computing.
Machine Languages It is the only language the computer understands. It is made of 0s and 1s. They must be in 0s and 1s because the internal circuit of.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Java Programming, Second Edition Chapter One Creating Your First Java Program.
Visual C++ Programming: Concepts and Projects
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Discovering Computers 2009 Chapter 13 Programming Languages and Program Development.
Lead Black Slide. © 2001 Business & Information Systems 2/e2 Chapter 5 Information System Software.
INTRODUCTION TO COMPUTING CHAPTER NO. 04. Programming Languages Program Algorithms and Pseudo Code Properties and Advantages of Algorithms Flowchart (Symbols.
Chapter 9: The Tower of Babel 國立雲林科技大學 資訊工程研究所 張傳育 (Chuan-Yu Chang ) 博士 Office: ES 709 TEL: ext 國立雲林科技大學.
Invitation to Computer Science 5th Edition
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
JavaScript Defined JavaScript Basics Definitions JavaScript is an object-oriented programming language designed for the world wide web. JavaScript code.
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
 2001 Prentice Hall, Inc. All rights reserved. Chapter 1 – Introduction to Computers, the Internet and the World Wide Web Outline 1.1Introduction 1.2What.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Course Instructor: Hira Farman Course : BY:HIRA FARMAN.
CPS120: Introduction to Computer Science Variables and Constants.
Invitation to Computer Science, Java Version, Second Edition 1 Logic Programming Logic programming  Various facts are asserted to be true  On the basis.
Invitation to Computer Science 6 th Edition Chapter 10 The Tower of Babel.
Chapter 11  Getting ready to program  Hardware Model  Software Model  Programming Languages  Facts about C++  Program Development Process  The Hello-world.
Software Design and Development Languages and Environments Computing Science.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Introduction to computer programming
Software Engineering Algorithms, Compilers, & Lifecycle.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
Introduction of Programming Languages
Developing Applications
Chapter 10 The Tower of Babel.
High Level Programming Languages
Introduction to Computer Programming
Principles of Programming Languages
Presentation transcript:

Chapter 9: The Tower of Babel Invitation to Computer Science, Java Version, Third Edition

Invitation to Computer Science, Java Version, Third Edition 2 Objectives In this chapter, you will learn about Procedural languages Special-purpose languages Alternative programming paradigms

Invitation to Computer Science, Java Version, Third Edition 3 Why Babel? Story of Tower of Babel  A biblical story about people suddenly starting to speak different languages and no longer being able to communicate with each other Multiple programming languages  Each language designed for specific needs  One language may be better suited than others for writing certain kinds of programs

Invitation to Computer Science, Java Version, Third Edition 4 Procedural Languages Also called imperative languages A program consists of sequences of statements that manipulate data items The programmer devises the step-by-step sequence of “imperative commands”

Invitation to Computer Science, Java Version, Third Edition 5 FORTRAN FORTRAN derives from FORmula TRANslation Developed in the mid-1950s by a group at IBM headed by John Backus First high-level programming language Remains an effective language for engineering applications

Invitation to Computer Science, Java Version, Third Edition 6 FORTRAN (continued) Designed for numerical computations  Allows concise mathematical notation and a number of mathematical functions Another goal: Optimize the object code  External libraries of code modules that are separately compiled and used by a program

Invitation to Computer Science, Java Version, Third Edition 7 FORTRAN (example) FUNCTION func_name(a, b) INTEGER :: func_name INTEGER :: a REAL :: b func_name = (2*a)+b RETURN END FUNCTION PROGRAM cows IMPLICIT NONE INTEGER :: func_name PRINT *,func_name(2, 1.3) END PROGRAM

Invitation to Computer Science, Java Version, Third Edition 8 COBOL COBOL derives from COmmon Business- Oriented Language Developed in by a group headed by Grace Hopper of the U.S. Navy Designed to serve business needs such as managing inventories and payrolls  Better for file input than keyboard input

Invitation to Computer Science, Java Version, Third Edition 9 COBOL (continued) Much of a COBOL program may be concerned with formatting  Described by “PICTURE clauses” in the program COBOL programs  More verbose than other languages  Highly portable

Invitation to Computer Science, Java Version, Third Edition 10 COBOL (continued) COBOL programs  Easy to read  Well-suited for manipulating large data files Still the most widely used language

Invitation to Computer Science, Java Version, Third Edition 11 COBOL (example) PROCEDURE DIVISION MAIN-PARAGRAPH MOVE X TO Y *the comment asterisk will be placed in position /as will the page break solidus IF Y > Z THEN ADD Z TO X MOVE X TO Z ELSE DISPLAY 'The hypen for continuing a string 'onto the next line also goes into position 7‘ END-IF *all other text is placed from position *so you still need to indent where required STOP RUN.

Invitation to Computer Science, Java Version, Third Edition 12 C/C++ C  Developed in the early 1970s by Dennis Ritchie at AT&T Bell Laboratories  Originally designed for systems programming (UNIX)  Most widely used language for system software  Also used for general-purpose computing

Invitation to Computer Science, Java Version, Third Edition 13 C/C++ (continued) Why is C so popular?  Relationship between C and UNIX  C’s efficiency  C is close to assembly language  Has high-level statements  Portability

Invitation to Computer Science, Java Version, Third Edition 14 C/C++ (example) /* Random Number Program */ #include main() { int x, nums[100]; for(x = 0; x < 100; ++x) { nums[x] = rand(); printf("%d ", nums[x]); } }

Invitation to Computer Science, Java Version, Third Edition 15 Figure 9.1 User Hardware Interface and Programming Languages

Invitation to Computer Science, Java Version, Third Edition 16 C/C++ (continued) C++  Developed in the early 1980s by Bjarne Stroustrup at AT&T Bell Laboratories  A “superset” of C  A popular “industrial-strength” language because of Standardization Object-orientation A strong collection of library code

Invitation to Computer Science, Java Version, Third Edition 17 Ada Mid-1970s: Branches of the U.S. armed services started to develop a common high-level programming language 1979: Winner of design competition – “Steelman” Ada 95 Reference Manual  Current international standard exists

Invitation to Computer Science, Java Version, Third Edition 18 Ada (continued) Ada  Provides multiprocessing capability  Strongly object-oriented Still used today in  Transportation industry  Safety monitoring systems at nuclear reactors  Financial and communication systems

Invitation to Computer Science, Java Version, Third Edition 19 C# and.NET C#  Introduced in June 2000  Many improvements in safe usage over C++  Shares many features with Java

Invitation to Computer Science, Java Version, Third Edition 20 C# and.NET (continued) Microsoft.NET Framework  Supports C# and other languages  Facilitates ease of development Traditional text-based applications GUI applications Web-based programs

Invitation to Computer Science, Java Version, Third Edition 21 C# and.NET (continued).NET programs are highly portable.NET programs are compiled into Microsoft Intermediate Language (MSIL) MSIL is not tied to any particular platform  Just In Time compiler or JIT Compiles MSIL code into object code on the user’s machine

Invitation to Computer Science, Java Version, Third Edition 22 Special-Purpose Languages Designed for one specialized task Examples  SQL  HTML  JavaScript

Invitation to Computer Science, Java Version, Third Edition 23 SQL SQL: Structured Query Language A database stores data Databases can be queried: The user can pose questions to the database SQL is the language used to frame database queries

Invitation to Computer Science, Java Version, Third Edition 24 HTML HTML: HyperText Markup Language HTML is the language used to create HTML documents Web page  An HTML document viewed with Web browser software

Invitation to Computer Science, Java Version, Third Edition 25 HTML (continued) An HTML document  Consists of text displayed on the Web page and tags  Tags are special characters  Formatting  Special effects  References to other HTML documents

Invitation to Computer Science, Java Version, Third Edition 26 Figure 9.4 HTML Code for a Web Page

Invitation to Computer Science, Java Version, Third Edition 27 Figure 9.5 Body of the Web Page Generated by Figure 9.4

Invitation to Computer Science, Java Version, Third Edition 28 Figure 9.6 Some HTML Tags

Invitation to Computer Science, Java Version, Third Edition 29 JavaScript JavaScript is a scripting language Scripting language  A “lightweight” language that is Interpreted (translated/executed statement by statement)  Code fragments can be embedded in Web pages to make those pages active

Invitation to Computer Science, Java Version, Third Edition 30 Alternative Programming Paradigms A paradigm  A model or mental framework for representing or thinking about something The paradigm of procedural programming languages  A sequence of detailed instructions is provided to the computer

Invitation to Computer Science, Java Version, Third Edition 31 Alternative Programming Paradigms (continued) The paradigm of procedural programming languages (continued)  Each instruction accesses or modifies the contents of a memory location  Computer carries out the instructions one at a time, resulting in the solution to the problem

Invitation to Computer Science, Java Version, Third Edition 32 Alternative Programming Paradigms (continued) Alternative paradigms for programming languages  Viewing a program’s actions as A combination of various transformations upon items (functional programming) A series of logical deductions from known facts (logic programming) Multiple copies of the same subtask or multiple subtasks of the same problem being performed simultaneously by different processors (parallel programming)

Invitation to Computer Science, Java Version, Third Edition 33 Functional Programming 1958: LISP (LISt Processing) language designed by John McCarthy at MIT Scheme  A functional programming language derived from LISP in the late 1970s A functional programming language views every task in terms of functions

Invitation to Computer Science, Java Version, Third Edition 34 Functional Programming (continued) In a functional programming language  Primitive functions are part of the language  Other functions can be defined and named by the programmer  Once defined, functions can be used in the definition of other functions Functional programming languages sometimes called applicative languages

Invitation to Computer Science, Java Version, Third Edition 35

Invitation to Computer Science, Java Version, Third Edition 36 Functional Programming (continued) Functional languages offer another layer of abstraction: Mathematics  Functions are described mathematically by what they do to an item of data rather than by how they modify memory cells  Possibility of side effects is eliminated

Invitation to Computer Science, Java Version, Third Edition 37 Logic Programming Logic programming  Various facts are asserted to be true  On the basis of these facts, a logic program can infer or deduce other facts  A query can be posed to the program The program applies logical deductions to answer the query Logic programming languages are sometimes called declarative languages

Invitation to Computer Science, Java Version, Third Edition 38 Logic Programming (continued) Logic programming has been used to write expert systems Prolog (PROgramming in LOGic)  Developed in France at the University of Marseilles in 1972 by a group headed by A. Colmerauer

Invitation to Computer Science, Java Version, Third Edition 39 Logic Programming (continued) Prolog programs  Consist of facts and rules A fact expresses a property about a single object or a relationship among several objects A rule is a declaration of an “if A then B” form  We interact with the program by posing queries

Invitation to Computer Science, Java Version, Third Edition 40 Figure 9.10 A Prolog Program

Invitation to Computer Science, Java Version, Third Edition 41 Logic Programming (continued) Logic programming paradigm  The program is a knowledge base of facts and rules about a certain domain of interest  Interaction with the program: Posing queries to an inference engine (also called a query interpreter)

Invitation to Computer Science, Java Version, Third Edition 42 Figure 9.11 The Logic Programming Paradigm

Invitation to Computer Science, Java Version, Third Edition 43 Parallel Programming SIMD (single instruction stream/multiple data stream)  A single control unit broadcasts a single program instruction to multiple ALUs  Each ALU carries out that instruction on its own local data stored in its local memory

Invitation to Computer Science, Java Version, Third Edition 44 Parallel Programming (continued) MIMD (multiple instruction stream/multiple data stream)  Numerous interconnected processors execute their own programs on their own data, communicating results as necessary Variations of parallel processing  Divide-and-conquer approach to MIMD parallel processing  Neural networks

Invitation to Computer Science, Java Version, Third Edition 45 Figure 9.13 An Example of MIMD Parallel Processing

Invitation to Computer Science, Java Version, Third Edition 46 Summary Each programming language was designed to meet specific needs Procedural programming language: FORTRAN Object-oriented languages: Ada, Java, C++, C# Special-purpose languages: SQL, HTML, JavaScript A functional programming language views every task in terms of functions

Invitation to Computer Science, Java Version, Third Edition 47 Summary (continued) Logic programming: Various facts are asserted to be true, based on whether the program infers or deduces other facts Parallel programming  SIMD (single instruction stream/multiple data stream)  MIMD (multiple instruction stream/multiple data stream)