Title: Evolution and History of Programming Languages SoftwareHardwareSystem
1Evolution and History of Programming
LanguagesSoftware/Hardware/System
2Software Programming Language
3History Timeline
4The Evolution of Programming 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
- Machine languages
- Assembly languages
- Higher-level languages
5The Evolution of Programming Languages - Machine
Languages
- 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.
6The Evolution of Programming Languages - Assembly
Languages
- 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.
7(No Transcript)
8The Evolution of Programming Languages -
Higher-Level 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
- Third-generation languages
- Fourth-generation languages
- Fifth-generation languages
9Higher-Level Languages - Third-Generation
Languages
- 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
FORTAN C COBOL C BASIC Java Pascal Activ
eX
10A Typical C Program Development Environment
- 1. Edit
- 2. Preprocess
- 3. Compile
- 4. Link
- 5. Load
- 6. Execute
11Higher-Level Languages - Fourth-Generation
Languages
- 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
Visual Basic (VB) VisualAge Authoring
environments
12Higher-Level Languages - Fifth-Generation
Languages
- 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
13Summary
14Hardware Description Language
15HDL
16Hardware 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
17HDL
- 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 (gt100000s of
gates) can be implemented.
18HDLs
- 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
19Verilog 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.
20Example 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
21HDL 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.
22System Design Language
- Hardware and Software
- Co-design
23(No Transcript)
24(No Transcript)
25(No Transcript)
26Traditional Design Flow
26
27HW/SW Codesign Flow
- Concurrent design between hardware and software
using - Co-simulation
- Co-synthesis
27
28Codesign 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
29SystemC History
VSIA SLD Data Types Spec (draft)
Synopsys ATG
Synopsys Fridge
30SystemC Highlights
- Features as a codesign language
- 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
31Current System Design Methodology
C/C System Level Model
- Problems
- Errors in manual conversion from C to HDL
- Disconnect between system model and HDL model
- Multiple system tests