Computer Education Slides
Computer Education Slides
AND LANGUAGES
Developing a computer program
Programs are a set (series) of instructions
Programmers determine
• The instructions to be performed.
• The order in which those instructions are to
be performed.
• The data required to perform those
instructions.
Program Development- Where to start?
Algorithms
The most basic tools that are used to develop
the problem-solving logic
• steps are unambiguous
• a finite number of steps
• that repeat (iterate)
• require decisions (logic and comparison) until the
task is completed
200
200
200
200
Even/Odd number
Calculate factorial- 5! = 5*4*3*2*1
Computer languages
Natural languages are ambiguous, vaguely
structured (vs. well defined), and has very
large and ever changing (vs. well defined and
a stable set) vocabularies
Fortran Cobol
LISP
BASIC Algol 60
PL/1
Simula ML
Algol 68
C Pascal
Scheme
Smalltalk
Ada Dylan
C++ Perl
Modula 3 Prolog
Java
C# Python Ruby
History of Programming
Languages
Punch cards
Jacquard looms 1801?
Analytical engine
(Charles Babbage
and Ada Byron
Lovelace)
US Census data 1890
(Herman Hollerith)
Hand-coded machine
language programs
10110000 01100001
Assembly language
programs This portrait of Jacquard
mov ds,ax was woven in silk on a Jacquard
Modern programming loom and required 24,000
languages punched cards to create (1839)
Charles Babbage’s
Analytic Engine 1834
Late 1940’s
Binary Code
Native computer language
Consists only of 0s and 1s
0’s = off
1’s = on
Difficult for humans to
read, write, and debug
Fast and efficient,
executed directly on the
CPU
Programming Language
Generations
Assembly languages
Simple mnemonic instructions <opcode> <operands>
Assembler translates into machine code
Specific to each type of processor, not portable
Programming Language Generations