A list of compilers that can generate C code
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md Remove bft Jun 11, 2018

README.md

Compilers targeting C

The following is a list of open source compilers that can generate C (or in some cases, C++) code.

Project name/link Language(s) supported Notes
ATS ATS
BaCon (Basic Converter) Basic
bc9Basic Basic Can generate C or C++ code. Runs only on Windows but can generate code for *nix. A fork of BCX that outputs valid ISO/ANSI C. Website archive.
Bigloo Scheme (R5RS)
bmx-ng BlitzMax A Monkey-derived BlitzMax to C transpiler.
Carp Carp A statically typed lisp, without a GC, for real-time applications.
Chapel Chapel
CHICKEN Scheme Scheme (R5RS)
Ciao Prolog
cito Ć A language for making portable libraries with a syntax like C#. Also targets Java, C#, JavaScript, ActionScript, Perl 5 and D.
Critical Mass Modula-3 Modula-3
Cyclone Scheme (R7RS) Cheney on the M.T.A. with native threads.
Cython Python
Céu Céu
EiffelStudio Eiffel
Embeddable Common-Lisp ANSI Common Lisp
Epic Epic
Esotope Brainfuck Compiler Brainfuck
Euphoria to C Translator Euphoria
f2c Fortran 77
Felix Felix Targets C++, not C.
FreeBASIC Basic
Futhark Futhark Purely functional data-parallel language generating OpenCL C
Gambit Scheme (R5RS)
GCL Common Lisp
Genie Genie
GHC Haskell C backend documentation page.
GnuCOBOL COBOL 2014 with extensions
Haxe Haxe Has separate C++ and C targets
Idris Idris A pure functional programming language with dependent types.
Ivory Ivory A Haskell eDSL for safe systems programming.
jhc Haskell 98 The resulting code doesn't use a garbage collector.
JX Objective-C Objective-C (JX Dialect) Object-oriented (Kayian School) language hosted on C
Language84 Language84
mbeddr mbeddr A set of languages for embedded software engineering.
Mercury Mercury
MLton Standard ML
Monkey Monkey Targets C++, not C.
Mrustc Rust
Nim Nim Can generate C, C++ or Objective C code.
Nit Nit
Nuitka Python
ocamlcc OCaml Compiles OCaml bytecode to C.
oi C with traits Compiles to code that can be directly used from plain C.
ooc ooc
OpenDylan Dylan
p2c Several Pascal dialects, including UCSD and Turbo Pascal; Modula-2. Can generate C or C++ code.
ParparVM Java bytecode Use for the Java to iOS portability part of the Codename One project.
perlcc Perl 5
purescript-native PureScript Targets C++, not C.
Py14 Python Targets C++, not C.
Pythran Python Targets C++, not C.
Ragel Ragel Can generate C or C++ code. Compiles executable finite state machines from regular languages.
RPerl RPerl, a restricted subset of Perl. Targets C++, not C. Unrelated to RPython.
RPython RPython, a restricted subset of Python. Unrelated to RPerl.
Sather Sather
Scheme-to-C Scheme Example nanopass compiler
Seed7 Seed7
Shedskin Python Targets C++, not C.
SLua Lua
SystemTap SystemTap scripting language SystemTap compiles kernel modules for monitoring Linux systems.
ThinScript ThinScript A lower-level programming language inspired by TypeScript. ThinScript also compiles to JavaScript and WebAssembly.
TSP A typed subset of Tcl. An experimental JIT. Compiles procedures written in a statically typed subset of Tcl to C or Java to accelerate Tcl programs.
UbxBasic Basic Can generate C or C++ code. A fork of BCX that adds Linux support in addition to Windows. Uses Glib.
Ur/Web Ur/Web
Vala Vala
Zephir Zephir A language for writing PHP extensions.

See also

  • Cello, a library for high-level programming in C
  • Clue, an ANSI C compiler targeting high level languages (Lua, JavaScript, Perl 5, C, Java, Common Lisp)
  • LISP/c, a Common Lisp based macrolanguage for C
  • LLVM C backend resurrected
  • luastatic, a tool that builds standalone executables from Lua programs by embedding Lua code in C

Contributing

Your contributions are welcome! Please submit a pull request or create an issue to add a new compiler to the list.

License

CC0