evolution and history of programming languages software hardware system l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Evolution and History of Programming Languages Software/Hardware/System PowerPoint Presentation
Download Presentation
Evolution and History of Programming Languages Software/Hardware/System

Loading in 2 Seconds...

play fullscreen
1 / 31

Evolution and History of Programming Languages Software/Hardware/System - PowerPoint PPT Presentation


  • 422 Views
  • Uploaded on

Evolution and History of Programming Languages Software/Hardware/System. Software Programming Language. History Timeline. The Evolution of Programming Languages .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Evolution and History of Programming Languages Software/Hardware/System


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
evolution and history of programming languages software hardware system

Evolution and History of Programming LanguagesSoftware/Hardware/System

slide4

The 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
slide5

The 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.
slide6

The 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.
slide7

Assembly

code

Assembler

Object code

slide8

The 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
slide9

Higher-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 ActiveX

a typical c program development environment

Phases of C Programs:

1. Program is created in the editor and stored on disk

Editor

Disk

2. Preprocessor program processes the code

Preprocessor

Disk

3. Compiler creates object code and stores it on disk.

Compiler

Disk

Linker

Disk

4. Linker links the object code with the libraries

Primary Memory

Loader

5. Loader puts program in memory.

Disk

Primary Memory

CPU

6. CPU takes each instruction and executes it, possibly storing new data values as the program executes

A Typical C Program Development Environment

1. Edit

2. Preprocess

3. Compile

4. Link

5. Load

6. Execute

slide11

Higher-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

slide12

Higher-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
slide15
HDL
  • What and why HDL??
hardware description language hdl
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
slide17
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.
slide18
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
verilog hdl
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.
example simple circuit hdl
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

hdl summary
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.
system design language

System Design Language

Hardware and Software

Co-design

hw sw codesign flow
HW/SW Codesign Flow

Concurrent design between hardware and software using

Co-simulation

Co-synthesis

27

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

Codesign Language

Has no tool support. Only useful for influencing other languages.

Lacks CAD tool support

Proprietary: Not universally available

systemc history

Synopsys

“Scenic”

SystemCv1.0

SystemCv0.90

SystemCv1.1

Sep. 99

UC

Irvine

1996

Frontier Design

A/RT Library

Fixed Point Types

Apr. 00

1991

CoWare

“N2C”

Abstract Protocols

imec

1992

Jun. 00

1997

SystemC History

VSIA SLD Data Types Spec (draft)

Synopsys

ATG

Synopsys

“Fridge”

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

SystemC Highlights
  • Features as a codesign language
current system design methodology

Manual Conversion

Analysis

VHDL/Verilog

Refine

Simulation

Results

Synthesis

Rest of Process

Current 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