12

List of C Compilers (As early as 1973 and with the latest one at 2017)

 4 years ago
source link: https://iq.opengenus.org/list-of-c-compilers/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Reading time: 20 minutes

There are over 50 compilers for C like ICC by Intel to GNU GCC by GNU Project. The focus of having multiple compilers is to optimize the compiled C code for specific hardware and software environments. This has lead to a vast number of compilers but some have been abandoned in the path.

Some compilers were developed in 1970s (PCCM by Bell Labs) while the recent ones are from 2017 (AOCC by AMD).

Some compilers like LabWindows are used by a specific and small group of developers. At the same time, there are compilers like GNU GCC and ICC that are widely used till date.

Following is the ultimate list of C compilers that found some users:

Compiler Release Developer In Wide Use Users pccm 1973 Bell Labs

No General BSD C 1979 Zolman

No BSD Unix Aztec C 1980 Manx Software Systems

No DOS ACK 1980 Tanenbaum, Jacobs

Yes NetBSD Lattice C 1982 Steve Krueger

No DOS MPW 1986 Apple

No Early Mac GCC 1987 GNU Project

Yes General Turbo C 1987 Turbo

No Turbo IDE Megamax C 1988 Megamax, Inc

No Atari + Mac Acorn C 1988 Acorn

Yes RISC OS LabWindows 1989 National Instruments

Yes NIC QuickC 1990 Microsoft

No DOS Oracle C 1991 Oracle

Yes Oracle Developer Studio MinGW 1993 Peters

Yes Windows MSVC 1993 Microsoft

Yes Visual IDE CodeWarrior 1993 Metrowerks

No Motorola 68K LCC 1994 Dave Hanson, Chris Fraser

No MathWorks cc65 1999 Bassewitz

Yes Old 6502 systems Open64 2002 Open64 dev

Yes Itanium, x86-64 ICC 2003 Intel

Yes Intel Systems Watcom C 2003 Watcom

Yes General + Novell PathScale 2003 PathScale

No MIPS FPGA C 2005 Bass

Yes FPGA TCC 2005 Fabrice Bellard

Yes Various libraries CLang 2007 LLVM Developers

Yes General XL C 2007 IBM

No IBM systems HP-C 2012 HP

No HP systems AOCC 2017 AMD

Yes AMD systems

Beyond this, there are several other compilers that were not used by a significant number of users and originated from several sources like:

  • University research projects
  • Backed by companies but failed to get users
  • Experimental projects by a small group of developers

Why did some compilers go out of use?

One notable example is PCCM . It was widely used at a time as a general compiler but with the entry of better compilers like GCC, users moved from it.

Sometimes, backing companies are dissolved which results in downfall of the compilers like PathScale . Another example is CodeWarrior compiler which was mainly for Motorolla devices and due to its closure, this compiler went out of use.

For some the focus area went out of use. QuickC by Microsoft was for DOS and as Microsoft went on to develop better Operating System, they abandoned QuickC and developed better compilers for the new Operating Systems.

Why we need multiple compilers?

We need multiple compilers because:

  • Instruction set that is optimized for a particular hardware systerm varies.
  • Operating systems plays to significant role in execution.

Hence, a compiler can be optimized for:

  • a particular Hardware system
  • a particular Operating System
  • Particular system load like distributed, real time and others.

For example: ICC by Intel is optimized for Intel Systems while AOCC is optimized for AMD systems. Other compilers like GCC focuses on general optimizations for hardware features which are fairly standard.

ACK compiler which came out in 1980 was optimised for OpenBSD operating system. Similarly, other compilers focus on different operating systems.

With this, you have a good idea of how compilers evolved over the years and how the focus of each compiler differ.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK