4. • Machine languages
• Assembly languages
• Higher-level languages
To build programs, people use languages that are similar
to human language. The results are translated into
machine code, which computers understand.
Programming languages fall into three broad categories:
The Evolution of Programming Languages
5. • Machine languages (first-generation languages) are the
most basic type of computer languages, consisting of
strings of numbers the computer's hardware can use.
• Different types of hardware use different machine
code. For example, IBM computers use different
machine language than Apple computers.
The Evolution of Programming Languages -
Machine Languages
6. • Assembly languages (second-generation languages)
are only somewhat easier to work with than machine
languages.
• To create programs in assembly language, developers
use cryptic English-like phrases to represent strings
of numbers.
• The code is then translated into object code, using a
translator called an assembler.
The Evolution of Programming Languages -
Assembly Languages
8. • Third-generation languages
• Fourth-generation languages
• Fifth-generation languages
Higher-level languages are more powerful than assembly
language and allow the programmer to work in a more
English-like environment.
Higher-level programming languages are divided into
three "generations," each more powerful than the last:
The Evolution of Programming Languages -
Higher-Level Languages
9. FORTAN C
COBOL C++
BASIC Java
Pascal ActiveX
• Third-generation languages (3GLs) are the first to
use true English-like phrasing, making them easier
to use than previous languages.
• 3GLs are portable, meaning the object code created
for one type of system can be translated for use on a
different type of system.
• The following languages are 3GLs:
Higher-Level Languages -
Third-Generation Languages
10. A Typical C Program Development Environment
1. Edit
2. Preprocess
3. Compile
4. Link
5. Load
6. Execute
Disk
Disk
Loader
Linker
Compiler
Preprocessor
Editor
Disk
Disk
Disk
Primary Memory
CPU
Primary Memory
1. Program is created in the
editor and stored on disk
2. Preprocessor program
processes the code
3. Compiler creates object
code and stores it on disk.
5. Loader puts program
in memory.
4. Linker links the object
code with the libraries
6. CPU takes each instruction
and executes it, possibly
storing new data values as
the program executes
• Phases of C Programs:
11. Visual Basic (VB)
VisualAge
Authoring environments
• Fourth-generation languages (4GLs) are even easier
to use than 3GLs.
• 4GLs may use a text-based environment (like a 3GL)
or may allow the programmer to work in a visual
environment, using graphical tools.
• The following languages are 4GLs:
Higher-Level Languages -
Fourth-Generation Languages
12. • Fifth-generation languages (5GLs) are an issue of
debate in the programming community – some
programmers cannot agree that they even exist.
• These high-level languages would use artificial
intelligence to create software, making 5GLs
extremely difficult to develop.
• Solve problems using constraints rather than
algorithms, used in Artificial Intelligence
•Prolog
Higher-Level Languages -
Fifth-Generation Languages
16. Hardware Description Language
(HDL)
Basic idea is a programming language to
describe hardware
Initial purpose was to allow abstract
design and simulation
Design could be verified then implemented in
hardware
Now Synthesis tools allow direct
implementation from HDL code.
Large improvement in designer productivity
17. HDL
HDL allows write-run-debug cycle for
hardware development.
Similar to programming software
Much, much faster than design-implement-
debug
Combined with modern Field
Programmable Gate Array chips large
complex circuits (>100000s of gates) can
be implemented.
18. HDLs
There are many different HDLs
Verilog HDL
ABEL
VHDL
VHDL is the most common
Large standard developed by US DoD
VHDL = VHSIC HDL
VHSIC = Very High Speed Integrated Circuit
Verilog HDL is second most common
Easier to use in many ways = better for teaching
C - like syntax
19. Verilog HDL
Verilog constructs are use defined
keywords
Examples: and, or, wire, input output
One important construct is the module
Modules have inputs and outputs
Modules can be built up of Verilog primatives
or of user defined submodules.
20. Example: Simple Circuit HDL
module smpl_circuit(A,B,C,x,y);
input A,B,C;
output x,y;
wire e;
and g1(e,A,B);
not g2(y, C);
or g3(x,e,y);
endmodule
21. HDL Summary
Hardware Description Languages allow
fast design and verification of digital
circuits.
Accurate simulation and testing requires
delays and inputs to be specified.
There are three different levels of
abstraction for modelling circuits.
28. Codesign Language
Hardware Description
Language (HDL)
Software Description
Language (SDL)
People know C, so
how about languages
built on C/C++?
SystemC
SpecC
Handel-C
Has no tool support. Only useful for influencing other languages.
Lacks CAD tool support
Proprietary: Not universally available
30. SystemC Highlights
Modules
Processes
Ports
Signals
Rich set of port and signal
types
Rich set of data types
Clocks
Cycle-based simulation
Multiple abstraction levels
Communication protocols
Debugging support
Waveform tracing
Features as a codesign language
31. Current System Design Methodology
C/C++
System Level Model
Analysis
Results
Refine VHDL/Verilog
Manual Conversion
Simulation
Synthesis
Rest of Process
Problems
Errors in manual conversion from C
to HDL
Disconnect between system model
and HDL model
Multiple system tests