BaCon is a free BASIC to C translator for Unix-based systems, which runs on most Unix/Linux/BSD platforms, including MacOSX. It intends to be a programming aid in creating tools which can be compiled on different platforms (including 64bit environments), while trying to revive the days of the good old BASIC.

BaCon can be described as a translator, a converter, a source-to-source compiler, a transcompiler or a transpiler. It also can be described as a very elaborate preprocessor to C.

BaCon is implemented in generic shell script and in itself. Therefore, to start using Bacon, the target system must have either Korn Shell, or ZShell, or Bourne Again Shell (BASH) available. If none of these shells are available, then the free Public Domain Korn Shell can be installed, which can execute BaCon also. Furthermore, BaCon also works with a newer Kornshell implementation like the MirBSD Korn Shell.

The shell script implementation can convert and compile the BaCon version of BaCon. This will deliver the binary version of BaCon which has an extremely high conversion performance. On newer systems, the average conversion rate usually lies above 10.000 lines per second.

Code converted by BaCon can be compiled by GCC, the Compaq C Compiler, TCC, the clang/LLVM compiler and possibly also by other C compilers.


Older news can be found here.


BaCon Sources version 3.1

BaCon Precompiled Binaries and Packages

IDE Related

Documentation and tutorials


Demonstration programs

BaCon language extensions


Wrappers are BaCon functions built around external libraries.


Interfaces are straight imports from external libraries into BaCon.

User contributed functions

Similar projects and other links


Last update: September 24, 2015 - © Peter van Eerten.

The canonical URL for this page is

The background for this page came from

This page was created by hand with

BaCon uses Fossil for its software versioning and revision control. 

RATING is my current Euler rating using BaCon.

to help the ongoing development of BaCon.