0% found this document useful (0 votes)
37 views42 pages

Computer Languages

Computer Languages

Uploaded by

BINJAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views42 pages

Computer Languages

Computer Languages

Uploaded by

BINJAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

Computer Languages,

Algorithms
and
Program Development

How do computers know what we want them to do?

4-1
1. Communicating with a Computer

 Communication cycle
• One complete unit of communication.
– An idea to be sent.
– An encoder. Speaker encodes Listener decodes
– A sender. information information
– A medium.
– A receiver.
– A decoder.
– A response. Listener returns
feedback to speaker

4-2
1. Communicating with a Computer …

 Substituting a
computer for one of
User encodes
the people in the information Computer decodes
communication information
process.
• Process is basically
the same.
– Response may be Computer
symbols on the returns results
monitor. to user

4-3
1. Communicating with a Computer …

• A breakdown can occur any place along the cycle...


 Between two people:  Between a person and a computer:
• The person can’t hear you. • The power was suddenly interrupted.

• The phone connection is broken • An internal wire became


in mid-call. disconnected.

• One person speaks only French, • A keyboard malfunctioned.


while the other only Japanese.

• When communicating instructions to a computer, areas of


difficulty are often part of the encoding and decoding process.

4-4
1. Communicating with a Computer …
 Programming languages bridge the gap between human
thought processes and computer binary circuitry.

• Programming language: A series of specifically defined


commands designed by human programmers to give directions to
digital computers.

– Commands are written as sets of instructions, called programs.

– All programming language instructions must be expressed in


binary code before the computer can perform them.

4-5
2. The Role of Languages in Communication

 Three fundamental elements of language that


contribute to the success or failure of the
communication cycle:

1) Semantics

2) Syntax

3) Participants

4-6
2. The Role of Languages in Communication …

1) Semantics: Refers to meaning.

 Human language:  Computer language:


• Refers to the meaning of what is • Refers to the specific command
being said. you wish the computer to
perform.
• Words often pick up multiple – Input, Output, Print
meanings.
– Each command has a very
• Phrases sometimes have idiomatic specific meaning.
meanings:
– let sleeping dogs lie – Computers associate one
(don’t aggravate the situation meaning with one computer
by “putting in your two cents”) command.

4-7
2. The Role of Languages in Communication …

2) Syntax: Refers to form, or structure.


 Human language:  Computer language:
• Refers to rules governing • Refers to rules governing exact
grammatical structure. spelling and punctuation, plus:
– Pluralization, tense, agreement – Formatting, repetition,
of subject and verb, subdivision of tasks,
pronunciation, and gender. identification of variables,
definition of memory
• Humans tolerate the use of spaces.
language.
– How many ways can you say no? • Computers do not tolerate
Do they have the same syntax errors.
meaning?

4-8
2. The Role of Languages in Communication …
3) Participants:
• Human languages are used by people to communicate with each
other.
• Programming languages are used by people to communicate with
machines.

 Human language:  Computer language:


• In the communication cycle, • People use programming
humans can respond in more languages.
than one way. • Programs must be translated into
– Body language binary code.
– Facial expressions • Computers respond by performing
– Laughter the task or not!
– human speech

4-9
3. The Programming Language Continuum
 In the Beginning...Early computers consisted of special-
purpose computing hardware.
• Each computer was designed to perform a particular arithmetic task
or set of tasks.

• Skilled engineers had to manipulate parts of the computer’s


hardware directly.
– Some computers required “fat-fingering”.
• Fat-fingering: Engineer needed to position electrical relay
switches manually.

– Others required programs to be hardwired.


• Hardwiring: Using solder to create circuit boards with connections
needed to perform a specific task.

4-10
3. The Programming Language Continuum …

 ENIAC : Electronic Numerical Integrator And Computer


• Used programs to complete a number of different mathematical tasks.

– Programs were entered by plugging connector cables directly into


sockets on a plug-in board.

• Set-up could take hours.

• A program would generally be used for weeks at a time.

4-11
3. The Programming Language Continuum :ENIAC

4-12
3. The Programming Language Continuum …
 In the beginning… To use a computer, you needed to know how to program it.

 Today… People no longer need to know how to program in order to use the
computer.
 To see how this was accomplished, lets investigate how programming languages
evolved.

1) First Generation - Machine Language (code)


2) Second Generation - Assembly Language
3) Third Generation - People-Oriented Programming Languages
4) Fourth Generation - Non-Procedural Languages
5) Fifth Generation - Natural Languages

4-13
3. The Programming Language Continuum …
1) First Generation - Machine Language (code)
• Machine language programs were made up of instructions written in
binary code.

– This is the “native” language of the computer.

– Each instruction had two parts: Operation code, Operand


• Operation code (Opcode): The command part of a computer
instruction.
• Operand: The address of a specific location in the computer’s
memory.

– Hardware dependent: Could be performed by only one type of


computer with a particular CPU.

4-14
3. The Programming Language Continuum …
2) Second Generation - Assembly Language
• Assembly language programs are made up of instructions
written in mnemonics.
• Mnemonics: Uses convenient alphabetic abbreviations
to represent operation codes, and abstract symbols to
represent operands.
• Each instruction had two parts: Operation code,
Operand.
READ num1 • Hardware dependent.
READ num2 • Because programs are not written in 1s and 0s, the
LOAD num1
computer must first translate the program before it can
ADD num2
be executed.
STORE sum
PRINT sum
STOP

4-15
3. The Programming Language Continuum …
3) Third Generation - People-Oriented Programs
• Instructions in these languages are called statements.
– High-level languages: Use statements that resemble English
phrases combined with mathematical terms needed to
express the problem or task being programmed.

– Transportable: NOT-Hardware dependent.

– Because programs are not written in 1s and 0s, the computer


must first translate the program before it can be executed.

4-16
3. The Programming Language Continuum …

 Pascal Example: Read in two numbers, add them, and print


them out.

Program sum2(input,output);
var
num1,num2,sum : integer;

begin
read(num1,num2);
sum:=num1+num2;
writeln(sum)
end.
4-17
3. The Programming Language Continuum …
4) Fourth Generation - Non-Procedural Languages
• Programming-like systems aimed at simplifying the programmers
task of imparting instructions to a computer.

• Many are associated with specific application packages.

a) Query Languages:
b) Report Writers:
c) Application Generators:

4-18
3. The Programming Language Continuum …
4) Fourth Generation - Non-Procedural Languages

a) Query Languages:
a) Enables a person to specify exactly what information they
require from the database.
b) Usually embedded within database management programs.

b) Report Writers:
a) Takes information retrieved from databases and formats into
attractive, usable output.

c) Application Generators:
– A person can specify a problem, and describe the desired results.
– Included with many micro-computer programs (macros).

4-19
3. The Programming Language Continuum …
4) Fourth Generation - Non-Procedural Languages
• Object-Oriented Languages: A language that expresses a computer
problem as a series of objects a system contains, the behaviors of those
objects, and how the objects interact with each other.

– Object: Any entity contained within a system.


• Examples:
» A window on your screen.
» A list of names you wish to organize.
» An entity that is made up of individual parts.

– Some popular examples: C++, Java, Smalltalk, Eiffel.

4-20
3. The Programming Language Continuum …
5) Fifth Generation - Natural Languages
• Natural-Language: Languages that use ordinary conversation in one’s
own language.

– Research and experimentation toward this goal is being done.

• Intelligent compilers are now being developed to translate


natural language (spoken) programs into structured machine-
coded instructions that can be executed by computers.

• Effortless, error-free natural language programs are still some


distance into the future.

4-21
Assembled, Compiled, or
Interpreted Languages
 All programs must be translated before their
instructions can be executed.
 Computer languages can be grouped according to
which translation process is used to convert the
instructions into binary code:
• Assemblers
• Interpreters
• Compilers

4-22
Assembled, Compiled, or
Interpreted Languages
 Assembled languages:
• Assembler: a program used to translate Assembly
language programs.
• Produces one line of binary code per original program
statement.
– The entire program is assembled before the program
is sent to the computer for execution.

4-23
Assembled, Compiled, or
Interpreted Languages
 Interpreted Languages:
• Interpreter: A program used to translate high-level
programs.
• Translates one line of the program into binary code at a
time:
– An instruction is fetched from the original source
code.
– The Interpreter checks the single instruction for
errors. (If an error is found, translation and execution
ceases. Otherwise…)
– The instruction is translated into binary code.
– The binary coded instruction is executed.
– The fetch and execute process repeats for the entire
4-24
program.
Assembled, Compiled, or
Interpreted Languages
 Compiled languages:
• Compiler: a program used to translate high-level
programs.
• Translates the entire program into binary code before
anything is sent to the CPU for execution.
– The translation process for a compiled program:
• First, the Compiler checks the entire program for syntax
errors in the original source code.
• Next, it translates all of the instructions into binary code.
» Two versions of the same program exist: the original
source code version, and the binary code version
(object code).
• Last, the CPU attempts execution only after the
programmer requests that the program be executed. 4-25
Programming for Everyone

 Several ways to control what your computer does or


the way it accomplishes a particular task:
• Using Macros
• Using HTML to create Web Pages
• Scripting

 Each allows customization of current applications.

4-26
Programming for Everyone

 Using Macros
• Macro: Set of operations within the computer application
that have been recorded for later execution.
– Once recorded, the macro can be used repeatedly on
any document within that application.
– In word processors, macros are commonly used to
speed up repetitive tasks.
• Example: SIG can be stored as a macro that
includes a signature message at the end of a
document.

James R. Emmelsohn
Director of Public Relations,
Martin Electronics, Detroit Division 4-27
Programming for Everyone

 Using HTML to create Web Pages


• HTML (HyperText Markup Language): A computer
language consisting of special codes intended to design
the layout (or markup) of a Web page.
– Web browsers interpret the HTML code and display
the resulting Web pages.
– Web browser: A program that displays information
from the WWW.
– Each line of HTML is called a tag (formatting
instruction).

4-28
Programming for Everyone

<HTML>  Designates an HTML document


<HEAD>  Beginning of Header section
<TITLE> Title of Web Page </TITLE>  Contents of Title bar
</HEAD>  End of Header section
<BODY bgcolor=#ffffff text=#000000 >  Background=white, text=black
<BODY>  Top of the body of the document
<H1>  H1=largest text size, H6 is
<CENTER> Sample Web Page smallest
</CENTER> </H1>  CENTER turns on centering
<HR>  Turns off centering and large text
<A HREF=“http://www.dogpile.com”>  Displays a horizontal rule: thin
dogpile search engine </A> line
</BODY>  Links to the dogpile search engine
</HTML>  </BODY> and </HTML>designate
4-29
the bottom of the document
Programming for Everyone

 Scripting
• Scripting: A series of commands, written to accomplish
some task.
– Very similar to the concept of a program.
– Extends the capabilities of the application where it is
being used.
– Examples of scripting languages:
• Perl, C++, VBScript, JavaScript
• JavaScript: A scripting language that allows the
Web page designer to add functional features to a
formatted web page created in HTML.

4-30
Building a Program

 Whatever type of problem needs to be solved, a careful


thought out plan of attack, called an algorithm, is needed
before a computer solution can be determined.

1) Developing the algorithm.


2) Writing the program.
3) Documenting the program.
4) Testing and debugging the program.

4-31
Building a Program

 1) Developing the algorithm.


• Algorithm: A detailed description of the exact methods
used for solving a particular problem.
• To develop the algorithm, the programmer needs to ask:
– What data has to be fed into the computer?
– What information do I want to get out of the
computer?
– Logic: Planning the processing of the program. It
contains the instructions that cause the input data to
be turned into the desired output data.

4-32
Building a Program

 A step-by-step program plan is created during the


planning stage.
 The three major notations for planning detailed
algorithms:
• Flowchart: Series of visual symbols representing the
logical flow of a program.
• Nassi-Schneidermann charts: Uses specific shapes and
symbols to represent different types of program
statements.
• Pseudocode: A verbal shorthand method that closely
resembles a programming language, but does not have to
follow a rigid syntax structure.
4-33
Building a Program
Flow chart: Nassi-Schneidermann chart:
Start Y If money > $10.00 N
Go out Go home
Count Money Repeat until
money < $10.00
Stop
Do you Yes
have more than Go out Pseudocode:
$10.00? 1. If money < $10.00 then go home
No Else Go out
2. Count money
Go home
3. Go to number 1
End 4-34
Building a Program

 2) Writing the Program


• If analysis and planning have been thoroughly done,
translating the plan into a programming language should
be a quick and easy task.

 3) Documenting the Program


• During both the algorithm development and program
writing stages, explanations called documentation are
added to the code.
– Helps users as well as programmers understand the
exact processes to be performed.

4-35
Building a Program

 4) Testing and Debugging the Program.


• The program must be free of syntax errors.
• The program must be free of logic errors.
• The program must be reliable. (produces correct results)
• The program must be robust. (able to detect execution
errors)

• Alpha testing: Testing within the company.


• Beta testing: Testing under a wider set of conditions
using “sophisticated” users from outside the company.

4-36
Software Development:
A Broader View
Measures of effort spent on real-life programs:
Comparing programs by size:

Type of program Number of Lines


The compiler for a language with a
limited instruction set. Tens of thousands of lines
A full-featured word processor. Hundreds of thousands of lines
A microcomputer operating system. Approximately 2,000,000 lines
A military weapon management program.
(controlling missiles, for example) Several million lines

4-37
Software Development:
A Broader View
• Measures of effort spent on real-life programs:
Comparing programs by time:
• Commercial software is seldom written by individuals.
– Person-months - equivalent to one person working
forty hours a week for four weeks.
– Person-years - equivalent to one person working for
twelve months.

– Team of 5 working 40 hours for 8 weeks = ten person-


months.

4-38
Web Page Design Software:
Dreamweaver
 What is Web page design software?
• The programs that help create pages and their associated
HTML.
• Dreamweaver: A visual Web page editor primarily for use
by Web design professionals.

 Why is it needed?
• Allows creation of Web pages without knowledge of HTML
.

4-39
Web Page Design Software:
Dreamweaver
 What minimal functions must it have?
• WYSIWIG: “What you see is what you get.”
– Web page designers see exactly what it will look like.
• Allows selection of color scheme. (Background and text)
• Allows text manipulation. (Typing text where you want it,
changing the size, color or style)
• Allows importation and layout of images.

4-40
Web Page Design Software:
Dreamweaver
 What types of support are available to enhance its
use?
• Applets extend the capabilities of HTML.
– Applet: A short application program, usually written
in Java, which adds enhancement and/or functionality
to a Web page.
 Is special support hardware available?
• Creating audio/visual materials for the WWW:
– Photo digitizers or scanners, video digitizer, and audio
digitizer.
– Once these are in a standard digital format, they can be
imported to Web development programs.
4-41
Web Page Design Software:
Dreamweaver
 One final note:
• Dreamweaver and other Web page design software create
Web pages. You still need a place to keep your Web page.
– ISP (Internet Service Provider): A company or
organization that is used as an access point to the
WWW.
• The ISP will put your Web page on its server.
• You will be given an address where you or others
can access your Web page.

4-42

You might also like