computer programs and programming languages what are low-level languages and high-level languages?...

38
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent runs only on one type of computer Often machine-independent can run on many different types of computers Machine and assembly languages are low-level

Upload: melanie-marshall

Post on 02-Jan-2016

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Computer Programs and Programming Languages

What are low-level languages and high-level languages?

High-level language

High-level language

Low-levellanguage

Low-levellanguage

Machine-dependentruns only on one type of computer

Machine-dependentruns only on one type of computer Often machine-independent

can run on many different types of computers

Often machine-independentcan run on many different

types of computersMachine and assembly languages

are low-level

Machine and assembly languages are low-level

Page 2: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Generations of programming languages

Page 3: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

The evolution of programming paradigms

Imperative or Procedural

Declarative

Functional

Object Oriented

Page 4: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Low-Level Languages

What is machine language? Only language computer

directly recognizes

Page 5: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Low-Level Languages

What is assembly language? Instructions made up of

symbolic instruction codes, meaningful abbreviations and codes

Source program contains code to be converted to machine language

Page 6: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Second-generation:Assembly language

A mnemonic system for representing programs Mnemonic names for op-codes Names for all registers Identifiers = descriptive names for memory locations,

chosen by the programmer

Page 7: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Assembly language characteristics

One-to-one correspondence between machine instructions and assembly instructions

Programmer must think like the machine

Inherently machine-dependent

Converted to machine language by a program called an assembler

Page 8: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Assembly language example

Machine language

156C166D505630CEC000

Assembly language

LD R5, PriceLD R6, ShippingChargeADDI R0, R5 R6ST R0, TotalCostHLT

Page 9: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Third generation language

Uses high-level primitives Similar to our pseudocode in Chapter 5

Machine independent (mostly)

Examples: FORTRAN, COBOL

Each primitive corresponds to a short sequence of machine language instructions

Converted to machine language by a program called a compiler

Page 10: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Procedural Languages

What is a procedural language?

Most widely used are BASIC, COBOL, and C

Uses series of English-like words to write instructions

Often called third-generation third-generation language (3GL)language (3GL)

Programmer writes instructions that tell

computer what to accomplish and how to do it

Page 11: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Procedural Languages

What is a compiler? Program that

converts entire source program into machine language before executing it

Page 12: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Procedural Languages

What is an interpreter? Program that

translates and executes one program code statement at a time

Does not produce object program

Page 13: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Procedural Languages

What is COBOL? Designed for business applications English-like statements make code easy to read, write,

and maintain COmmon

Business-Oriented Language

Page 14: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Procedural Languages

What is C? Powerful language originally designed to write system

software Requires professional programming skills

Page 15: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

The composition of a typical imperative program or program

unit

Page 16: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Variable declarations in C, C++, C#, and Java

Page 17: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Control structures and their

representations in C, C++, C#, and

Java

Page 18: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

The for loop structure and its representation in C++, C#, and

Java

Page 19: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

The flow of control involving a procedure

Page 20: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

The procedure ProjectPopulation written in the

programming language C

Page 21: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Executing the

procedure Demo and passing

parameters by value

Page 22: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Executing the procedure Demo and passing

parameters by reference

Page 23: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

The translation process

Page 24: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

A syntax diagram of our if-then-else pseudocode

statement

Page 25: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

An object-oriented approach to the translation process

Page 26: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Object-Oriented Programming Languages

What is an object-oriented programming (OOP) language?

Used to implement

object-oriented design

Major benefit is ability to

reuse existing objects

Event-driven—checks for

and responds to set of events

C++ and Java are complete

object-oriented languages

Object is item that contains data and

procedures that act on

data

Event is action to

which program responds

Page 27: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Object-Oriented Programming Languages

What is C++? Includes all elements of C, plus additional features

for working with object-oriented concepts Used to develop

database and Web applications

Page 28: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Object-Oriented Programming Languages

What is Java? Developed by Sun

Microsystems Similar to C++ but

uses just-in-time (JIT) compiler to convert source code into machine code

Page 29: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Object-Oriented Programming Languages

What is a visual programming language?

Programmer writes and implements

program in segments

Visual programming environment (VPE) allows developers to

drag and drop objects to build programs

Often used in Often used in RAD RAD (rapid application (rapid application

development) development) environmentenvironment

Sometimes calledSometimes calledfifth-generation fifth-generation

languagelanguage

Provides visual or Provides visual or graphical interface for graphical interface for creating source codecreating source code

Page 30: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Object-Oriented Programming Languages

What is Visual Studio .NET 2003? Suite of visual programming languages and RAD tools .NET is set of technologies that allows program to run on Internet Visual Basic .NET 2003 is used to build complex object-based programs

Step 1. The programmer designs the user interface.

Step 2. The programmer assigns properties to each object on the form.

Step 4. The programmer tests the application.

Step 3. The programmer writes code to define the action of each command button.

Page 31: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Objects and Classes

Object = active program unit containing both data and procedures

Class = a template for all objects of the same type

An Object is often called an instance of the class.

Page 32: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Components of an object

Instance variable = variable within an object

Method = function or procedure within an object Can manipulate the object’s instance variables

Constructor = special method to initialize a new object instance

Page 33: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

The structure of a class describing a coinpublic class Coin

{

private final int HEADS = 0;

private final int TAILS = 1;

private int face;

// Sets up the coin by flipping it initially.

public Coin ()

{

flip();

}

// Flips the coin by randomly choosing a face value.

public void flip ()

{

face = (int) (Math.random() * 2);

}

}

constructor

Instance variable

Method

Page 34: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Nonprocedural Languages and Program Development Tools

What are nonprocedural languages and program development tools?

Nonprocedural Language

The programmer writes English-like instructions or interacts with a visual environment to retrieve data from files or a

database

Nonprocedural Language

The programmer writes English-like instructions or interacts with a visual environment to retrieve data from files or a

database

Program Development Tools

User-friendly programs designed to assist both

programmers and users in creating programs

Program Development Tools

User-friendly programs designed to assist both

programmers and users in creating programs

Page 35: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Nonprocedural Languages and Program Development Tools

What is RPG (Report Program Generator)? Nonprocedural language used for generating reports,

performing computations, and updating files

Page 36: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Nonprocedural Languages and Program Development Tools

What is a fourth-generation language (4GL)? Nonprocedural language that allows access to data in

database Popular 4GL is SQL, query language that allows users to

manage data in relational DBMS

Page 37: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Nonprocedural Languages and Program Development Tools

What is an application generator? Program that creates source code or machine code from

specification Consists of report writer, form, and menu generator

Form provides areas for entering data

Page 38: Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent

Nonprocedural Languages and Program Development Tools

What is Visual Basic for Applications (VBA)? Macro programming language

Macro—series of statements used to automate tasks