More ways to say 'program': why developers are exploiting C, Ada, Prolog and Lisp programming tools

Software Magazine, July, 1988 by Jerry Cashin

MORE WAYS TO SAY 'PROGRAM'

Most programming languages are part of an evolutionary chain that stretches from early assembly languages, which mercifully terminated machine language coding, to a successor language of a higher level of abstraction.

Pascal, for example, has roots in Algol, a language that first arrived on the scene in the 1960s. In turn, both Algol and Pascal have made their mark on Ada.

The impact of one language on another continues unabated as new technologies present opportunities for new languages, which in turn offer novel capabilities for solving contemporary problems.

While C, Ada, Prolog and Lisp do not represent a complete list of emerging languages, they are good examples of three important programming language types: System Design Languages, Block Structured Languages and Symbolic Relational Languages.

C is a good example of a System Design Language. A key element of C is its assembly language-like ability to provide access to the hardware configuration underneath while still supporting high-level language features found in modern languages.

Type checking and control structures which follow current software engineering practices are also available. Ada fits precisely into the category called Block Structured Languages. An important feature of languages found in this classification is that programs are clearly segmented into procedural blocks, similar to subprograms in other languages. Storage requirements are not finalized at compile times, as is done with Fortran and Cobol. Instead, storage requirements are set at execute time as each succeeding block is entered and exited. Block Structured Languages also support strong data typing.

The Symbolic Relational Language category includes the last two of our "emerging" candidates, Prolog and Lisp. Both have evolved into strong association with artificial intelligence applications, but each also offers a powerful method for relating data, making them useful choices for database work as well. They are very high level in nature and strong in symbolic logic.

The four languages featured here span a continuum that ranges from the machine-associative traits of C to the symbolic relational characteristics found in Prolog and Lisp.

Ada falls in the middle, exhibiting traces of the features of the other two groups, but it also maintains a unique identity of its own. A few specific characteristics help to explain the appeal of each language.

The potential for portability is C's dominant feature. In fact, "it is widely acknowledged as being the most portable of languages," according to Dr. Lawrence Woodruff of Rapitech Systems Inc., Suffern, N.Y. "It is an attractive mix of high-level and machine-level capabilities, sort of a high-level assembler," he said.

Each C program exists as a sequence of files, some parts of which are data definitions and others which are standard programmed procedures.

The data definitions may be external or internal in nature. External definitions interrelate among multiple files while internal ones are relevant only within the file where they are located. Procedures, on the other hand, are all external. Files developed independently can be compiled, then linked together to produce a cohesive execution module.

C has close ties to the Unix world. It has been the Unix system programmer's language of choice because of its dual role as a high-level system-engineered programming tool, as well as a machine-level access mechanism for efficient design.

Recently, C has started to get strong support in non-Unix environments, primarily as a result of the widely accepted draft standard on C from the Ansi standards committee. Made up of over 100 representatives from academia, industry, and government, the standards group is currently reviewing comments following circulation of the draft language document. This new standard will impose unique methodologies for C programmers and analysts.

The initial definitive statement regarding C was documented in Kernighan and Ritchie's seminal book The C Programming Language, published in 1978. Before the recent standards effort, the Kernighan and Ritchie book was the de facto standard. There was no other significant reference at the time, although "it offered a small definition compared to the X3Jll work of recent vintage," declared Rapitech's Woodruff.

Kernighan and Ritchie weren't the only people to have an impact on C. In order to respond to different requirements, supersets of the language's original capability gained acceptance. Two of the most notable were developed at Berkeley and Microsoft Corp., respectively.

They added facilities such as enumerated data types [in Pascal you've seen it as DAY = (MON, TUES, FRI)]; and declarator extensions such as Pascal and Ncar. The additions also helped to dispel some of the ambiguities found in the original landmark work.

ANSI RESOLVES MANY C AMBIGUITIES

The Ansi directive for C further resolves any latent imprecision in the language definition, as well as offering a new standard library. The C execution library had been very vendor-specific up until the time of the Ansi standard, seemingly contradicting C's portability claims. But the new standard has changed all of that. It has introduced many changes to the library in order to unify its features and enhance the product's overall portability. Some of the new routines include the following:


 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)

advertisement
CXO UnpluggedSmart Business interviews on BNET

See and hear how senior level executives across the Asia Pacific are developing smart business ideas across a variety of sectors. The focus is on the future, and on how businesses need to evolve.

advertisement
  • Click Here
  • Click Here
  • Click Here
  • Click Here
advertisement

Content provided in partnership with Thompson Gale