Real-Time System Languages: An Overview, Study notes of Electrical and Electronics Engineering

An overview of real-time system languages, their types, properties, and examples such as ada, corba, jovial, and lustre. It also discusses the features, advantages, and applications of these languages.

Typology: Study notes

Pre 2010

Uploaded on 02/12/2009

koofers-user-ugm
koofers-user-ugm 🇺🇸

8 documents

1 / 10

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
11/15/2004 rts_10 © K. Hintz, 2001/4 1
ECE-612, Real-Time Systems
Real-Time Languages
Prof. K. Hintz
Electrical & Computer Engineering
11/15/2004 rts_10 2
Types of Languages*
Concurrent language
Programs that may be executed in parallel such as
multiprogramming (sharing one processor)
distributed multiprocessing (separate processors sharing
one memory)
Imperative languages
Operates by a sequence of commands that change
the value of data elements
Typified by assignments and iteration
* http://www.hypernews.org/HyperNews/get/computing/lang-list.html
11/15/2004 rts_10 3
Types of Languages
Dataflow language
Language suitable for use on a dataflow
architecture
Necessary properties
freedom from side effects
the equivalence of scheduling constraints with data
dependencies
Synchronous language
Duration of servicing an event is shorter than the
time between events
Can be validated deterministically
11/15/2004 rts_10 4
Ada
Named after Ada Lovelace (1815-1852)
Ada-95 (current version, Ada-83 original) is a
large, complex block-structured language
aimed primarily at very large and very critical
embedded computer applications
It has facilities for
Real-time response
Concurrency
Hardware access
Reliable run-time handling
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Real-Time System Languages: An Overview and more Study notes Electrical and Electronics Engineering in PDF only on Docsity!

11/15/2004 rts_10 © K. Hintz, 2001/4 1

ECE-612, Real-Time Systems

Real-Time Languages

Prof. K. Hintz

Electrical & Computer Engineering

11/15/2004 rts_10 2

Types of Languages *

Concurrent language

„ Programs that may be executed in parallel such as

Š multiprogramming (sharing one processor)

Š distributed multiprocessing (separate processors sharing

one memory)

Imperative languages

„ Operates by a sequence of commands that change

the value of data elements

„ Typified by assignments and iteration

  • (^) http://www.hypernews.org/HyperNews/get/computing/lang-list.html

Types of Languages

Dataflow language

„ Language suitable for use on a dataflow

architecture

„ Necessary properties

Š freedom from side effects

Š the equivalence of scheduling constraints with data

dependencies

Synchronous language

„ Duration of servicing an event is shorter than the

time between events

„ Can be validated deterministically

Ada

Named after Ada Lovelace (1815-1852)

Ada-95 (current version, Ada-83 original) is a

large, complex block-structured language

aimed primarily at very large and very critical

embedded computer applications

It has facilities for

„ Real-time response

„ Concurrency

„ Hardware access

„ Reliable run-time handling

11/15/2004 rts_10 5

Public Law 101-511 Sec 8092

"Notwithstanding any other provisions of

law, after June 1, 1991, where cost

effective, all Department of Defense

software shall be written in the

programming language Ada, in the

absence of special exemption by an

official designated by the Secretary of

Defense.

11/15/2004 rts_10 6

Ada

Compiles to most OS

„ Free compilers are available

Multitasking

„ Tasks are synchronized by the rendezvous, in

which a task waits for one of it subroutines to be

executed by another. The conditional entry

makes it possible for a task to test whether an

entry is ready.

„ The selective wait waits for either of two entries

or waits for a limited time.

Ada Properties

Strongly typed

Built-in concurrency

Exception handling

„ Exceptions can occur in a block of code and if not

handled there, propagate up blocks as they

complete

Generic templates

Distributed execution

Suitable for validation and proving reliability

Ada

Standard andde facto interfaces to

other languages and libraries

Object oriented (inheritance)

Tasks are prioritized

Static and dynamic declaration of

concurrent tasks

Strongly influenced by PASCAL

11/15/2004 rts_10 13

Java

"A simple, object-oriented, distributed,

interpreted, robust, architecture neutral,

protable, high-performance, multithreaded,

dynamic language.“

Originally called Oak

Similar in appearance to C++, but without

operator overloading, multiple inheritance,

automatic coercions, and pointer arithmetic.

Designed to be secure, with authentication

techniques based on public-key encryption.

11/15/2004 rts_10 14

Java

Interpreted with a stack-based virtual

machine

A net interface allows the compiled code to

be sent across the Internet and remotely

executed, thus allowing users to add

programs to their web pages

Well supported by industry leading to

portability

Large libraries and API

ALDiSP, ART, & CHILL *

ALDiSP

„ Applicative Language for Digital Signal Processing.

ART

„ Real-time functional language, timestamps each

data value when it was created.

CHILL

„ CCITT HIgh-Level Language. ca. 1980

„ Real-time language widely used in European

telecommunications

  • (^) http://www.informatik.uni-freiburg.de/Java/misc/lang_list.html

CLASP, & ConC

CLASP

„ NASA

„ Computer Language for AeronauticS and

Programming

„ Real-time language with focus on fixed-point math

ConC

„ Concurrent extension of C based on DPN

(decomposed Petri nets), using 'handshake' and

'unit' constructs

11/15/2004 rts_10 17

CORAL & DPS

CORAL

„ Real-time system programming language,

a derivative of JOVIAL and ALGOL-

DPS

„ Real-time language with direct expression

of timing requests

11/15/2004 rts_10 18

ERLANG

Specifically designed to build fault-tolerant,

distributed systems which can contain large

numbers of current processes

Concurrent functional language for large

industrial real-time systems.

Dynamic code replacement

Foreign language interface

Explicit concurrency

ERLANG properties

Untyped

„ Dynamically typed

„ The type of the object(s) it will name is not

specified at compile time

Pattern matching syntax

Recursive equations

Asynchronous message passing

Transparent cross-platform distribution

Primitives for detecting run-time errors

Real-time garbage collection modules

Esterel & FLEX

Esterel

„ Distributed language for synchronous

interaction of real-time systems with their

environment

„ Uses explicit timing requests

„ Compile into finite automata

FLEX

„ Real-time language for dynamic

environments

11/15/2004 rts_10 25

MODULA 2

Programming notation that corrects

some of the deficiencies of Pascal

Suitable for

„ Learning programming

„ Large projects which need to be written

and maintained

„ Real-time embedded systems

11/15/2004 rts_10 26

OZ

High-level language, combining constraint

inference with concurrency

Dynamically typed and has first-class

procedures, classes, objects, exceptions, and

sequential threads synchronizing over a

constraint store

Supports finite domain and feature

constraints and has powerful primitives for

programming constraint inference engines at

a high level

DFKI OZ 2.

Interactive implementation of OZ with

„ Incremental compiler

„ support for stand alone applications

„ OO interface to Tcl/Tk

„ graphic tools for constraint programming.

Extensive library of constraint propagators,

distributors,and search engines, including

special support for scheduling.

Includes state, abstract data types, objects,

classes, and inheritance

Typical application areas of OZ

Optimization problems like

„ Scheduling

„ Time tabling

„ Placement and configuration

„ Reasoning and knowledge representation

„ Processing of natural language

„ Simulation

„ Multi-agent systems

„ Sophisticated GUIs

11/15/2004 rts_10 29

P+ & Pascal-

P+

„ "Experience with Remote Procedure Calls

in a Real-Time Control System“

Pascal-

„ A successor of Platon

„ Developed at RC International for systems

programming

„ Later it was renamed Real-Time Pascal

11/15/2004 rts_10 30

Pascal-F & PEARL

Pascal-F

„ Pascal extended to include fixed-point arithmetic

„ Programming Language for Real-Time Automotive

Control

PEARL

„ Process and Experiment Automation Real-Time

Language

„ A real-time language for programming process

control systems, widely used in Europe

„ Size and complexity exceeds Ada

PORTAL & Real-Time Euclid

PORTAL

„ Process-Oriented Real-Time Algorithmic

Language

„ Pascal-based

Real-Time Euclid

„ Real-time language, restriction to time-

bounded constructs

Other RT Languages

Real-Time Mentat

„ An extension of C++

Real-Time Pascal

„ Later name for Pascal-

RTC++

„ Real-time extension of C++

RT-CDL

„ Real-Time Common Design Language

„ Real-time language for the design of reliable

reactive systems

SPL

SPL

„ Space Programming Language

„ a.k.a. SPL/J

„ Real time language used by the US Air

Force for aerospace software

„ Similar to JOVIAL

Music RT Languages

Arctic

„ Real-time functional language, used for

music synthesis

Moxie

„ Language for real-time computer music

synthesis, written in XPL

PLAY – 1977

„ Language for real-time music synthesis