FACTOID # 99: Thinking of becoming a teacher? Head to Switzerland. Teaching salaries there start at $US 33,000.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Cfront" also viewed:
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Cfront

Cfront was the original compiler for C++ (then known as "C with Classes") from around 1983, which converted C++ to C; developed by Bjarne Stroustrup. The preprocessor did not understand all of the language and much of the code was written via translations. Cfront had a complete parser, built symbol tables, and built a tree for each class, function, etc. A diagram of the operation of a typical multi-language compiler. ... C++ (pronounced see plus plus, IPA: /siː pləs pləs/) is a general-purpose computer programming language. ... The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a standardized imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ... Bjarne Stroustrup Bjarne Stroustrup (born December 30, 1950 in Aarhus, Denmark) is a computer scientist and the College of Engineering Chair Professor of Computer Science at Texas A&M University. ... In computer science, a preprocessor is a program that takes a source code and performs transformations on it, before the step of compilation or interpretation. ... Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... A parser is a computer program or a component of a program that analyses the grammatical structure of an input, with respect to a given formal grammar, a process known as parsing. ... In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each symbol in a programs source code is associated with information such as location, type and scope level. ... In computer science, a tree is a widely-used computer data structure that emulates a tree structure with a set of linked nodes. ... In, object-oriented programming, a class consists of a collection of encapsulated instance variables and methods, possibly with implementation of those types together with a constructor function that can be used to create objects of the class. ... In computer science, a subroutine (function, procedure, or subprogram) is a sequence of code which performs a specific task, as part of a larger program, and is grouped as one, or more, statement blocks; such code is sometimes collected into software libraries. ...


As Cfront was written in C++, it was a challenge to bootstrap on a machine without a C++ compiler/translator. Along with the Cfront C++ sources, a special "half-preprocessed" version of the C code resulting from compiling Cfront with itself was also provided. This C code was to be compiled with the native C compiler, and the resulting executable could then be used to compile the Cfront C++ sources.


Most of the porting effort in getting Cfront running on a new machine was related to standard I/O. Cfront's C++ streams were closely tied in with the C library's buffered I/O streams, but there was little interaction with the rest of the C environment. The compiler could be ported to most System V derivatives without many changes, but BSD-based systems usually had much more variations in their C libraries and associated stdio structures. AT&T UNIX System V was one of the versions of the UNIX operating system. ... BSD redirects here; for other uses see BSD (disambiguation). ...


Cfront defined the language until circa 1990, and many of the more obscure corner cases in C++ were related to its C++-to-C translation approach. A few remnants of Cfront's translation method are still found in today's C++ compilers; name mangling was originated by Cfront, as the relatively primitive linkers at the time did not support type information in symbols, and some template instantiation models are derived from Cfront's early efforts. C++ (and Cfront) was directly responsible for many improvements in Unix linkers and object file formats, as it was the first widely-used language which required link-time type checking, weak symbols, and other similar features. This article is about the year. ... It has been suggested that Name decoration be merged into this article or section. ... Figure of the linking process, where object files and static libraries are assembled into a new library or executable. ... Wikibooks has more about this subject: Guide to UNIX Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. ... Figure of the linking process, where object files and static libraries are assembled into a new library or executable. ... In computer science, object file or object code is an intermediate representation of code generated by a compiler after it processes a source code file. ... A file format is a particular way to encode information for storage in a computer file. ...


Cfront 4.0 was abandoned after a failed attempt to add exception support, and it appears it is no longer commercially available. The C++ language had grown beyond its capabilities, and it is unlikely a similar translation effort would be 100% successful with the modern C++ standard. While it is possible to generate an equivalent C program for any given C++ program, the relative complexity of Standard C++ mandates a compiler capable of understanding the entire language rather than just the C++-specific constructs. Exception handling is a programming language construct or computer hardware mechanism designed to handle runtime errors or other problems (exceptions) which occur during the execution of a computer program. ...


Cfront mentioned in Bjarne Stroustrup's FAQ [1]


  Results from FactBites:
 
Cfront - Wikipedia, the free encyclopedia (427 words)
Cfront defined the language until circa 1990, and many of the more obscure corner cases in C++ were related to its C++-to-C translation approach.
A few remnants of Cfront's translation method are still found in today's C++ compilers; name mangling was originated by Cfront, as the relatively primitive linkers at the time did not support type information in symbols, and some template instantiation models are derived from Cfront's early efforts.
Cfront 4.0 was abandoned after a failed attempt to add exception support, and it appears it is no longer commercially available.
  More results at FactBites »


 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m