Skip over menu

Software Safety Home Page
Safe Compilers
Last Modified on: Fri Sep 26 20:15:08 2008
Navigation Menu Left:

Books to read
Compliers with safety in mind Reactive Programing Language
Guidelines for better software
Hardware Design Tips
ISO9000, the correct meaning
Internationalization (I18N & L10)

Compilers with safety in mind

Navigation Menu Right:

Metrics Gone Bad
Past Visitors
Photosensitive Epilepsy
Software Patents Gone Bad
Translate the Software Safety web site

If you think that I could be of some assistance to you or your organization let me know,
American Society for Quality  Certified Software Quality Engineer.

Software Safety now has a blog! Check it out.

This site has been listed as the EG3 Editor's Choice in the Embedded Safety category for February 2004.

eCLIPS gives this site four of five stars in the September 7th 2004 SAFETY CRITICAL - DESIGN GUIDE.

Site Search by PicoSearch 
Text Search

Guidelines for Choosing A Computer Language: Support For The Visionary Organization 2nd Edition - by Patricia K. Lawlis

[Added Aug/01/2004:]

Confluence is a language for synchronous reactive system design. A Confluence program can generate digital logic for an FPGA or ASIC platform, or C code for hard real-time software.

Confluence combines the component-based methodologies of Verilog and VHDL with the expressiveness of higher order functional programming.

In comparison to Verilog, VHDL, and C, systems designed in Confluence result in 50% to 80% fewer lines of code, making the source easier to manage and reuse. And because Confluence relies on a correct-by-construction compiler, bugs are reduced -- some are prevented altogether -- thus reducing the overall verification effort.


"The Ada programming language is designed for embedded systems, safety-critical software, and large projects that require portability and maintainability. For example, over 99 percent of the aviation software in the Boeing 777 is in Ada. Not surprisingly, Ada was the first object-oriented design programming language to be accepted as an International Standard.

The language is named after Ada Byron, Countess of Lovelace, who was the first published computer programmer and daughter of the poet Lord Byron.

Ada has kept its promise made over twenty years ago to save life cycle costs from planning software to updating legacy systems. Easily reused and maintained, readable and user friendly, Ada code facilitates such massive software projects as the Space Station and the Paris Metro. It has proven to be extraordinarily robust in decades' worth of daily field tests under the most rigorous conditions in which millions of lives have been at stake. The language dominates air transport and subways and runs everything from video security systems to pollution monitoring devices." -- Ada Information Clearinghouse

Ada Home: The  Web Site for Ada

Ada Core Technologies, developer and maintainer of the Ada 95 GNAT Pro Development Environment.

Ada for GNU/Linux Team, which is working to make it easy to use Ada on GNU/Linux.

Cyclone C Compiler A Safe Dialect of C from AT&T Research.

As example of embeddable code the Cyclone, version 0.8 compiler will cross-compiling to Nintendo Gameboy.

Download a copy and try it out for yourself.

Read! the documentation.

Join! Cyclone mailing lists or send comments

Cyclone is mirrored at Cornell and AT&T Labs Research.


Cyclone is a programming language based on C that is safe, meaning that it rules out programs that have buffer overflows, dangling pointers, format string attacks, and so on. High-level, type-safe languages, such as Java, Scheme, or ML also provide safety, but they don't give the same control over data representations and memory management that C does (witness the fact that the run-time systems for these languages are usually written in C.) Furthermore, porting legacy C code to these languages or interfacing with legacy C libraries is a difficult and error-prone process. The goal of Cyclone is to give programmers the same low-level control and performance of C without sacrificing safety, and to make it easy to port or interface with legacy C code.

Cyclone achieves safety while remaining compatible with C by:

Cyclone also provides modern features for convenient programming:

Software Distribution

The Cyclone compiler and tools, as well as some benchmark programs, are freely available for download.

The Functional Programming Language Clean, is based on the concept of mathematical functions.

Clean is a pure functional language, there is not such a thing as an assignment. This has a big advantage: a function cannot have a side-effect. A Clean function is referential transparent: the result of a function only depends on the value of the function arguments and on nothing else.

This has important consequences:

Esterel is a system-design language that can be used to generate complex state machines automatically. Because of its textual (rather than graphical) nature, and because of its compositional facilities, you can use it to write compact specifications for systems with complex state machines. Here's an overview of Esterel's syntax and usage by Girish Keshav Palshikar.

The ESTEREL Language
Esterel is both a programming language, dedicated to programming reactive systems, and a compiler which translates Esterel programs into finite-state machines. It is one of a family of synchronous languages, like SyncChartsLustre ,Argos  or Signal , which are particularly well-suited to programming reactive systems, including real-time systems and control automata.


ArgoUML is a modeling tool that helps you do your design using UML.

SMG - State Machine Generator

SMG is a tool used to generate state machine framework code from a terse set of directives embedded directly in the input source code file. This tool will also generate GraphViz graphical description and Spin/Promela modeling output.

Ragel State Machine Compiler

Ragel is a development tool that compiles finite state machines from regular languages into runnable C/C++ code. It is unique in that it allows you to embed actions and control non-determinism in regular languages.

Select from the menu other areas of Software Safety that you would like to explore.

If you think that I could be of some assistance to you or your organization let me know,
American Society for Quality  Certified Software Quality Engineer.

Go Back To The  Software Safety Home Page