Skip to content
/ ncc Public

a 64-bit C compiler (and preprocessor, assembler, linker, etc.) for AMD64

License

Notifications You must be signed in to change notification settings

moneytech/ncc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Charles Youse
Dec 27, 2018
ef6b987 · Dec 27, 2018

History

4 Commits
Dec 26, 2018
Dec 26, 2018
Dec 26, 2018
Dec 26, 2018
Dec 27, 2018
Dec 26, 2018
Dec 27, 2018
Dec 26, 2018
Dec 26, 2018
Dec 26, 2018
Dec 26, 2018
Dec 26, 2018
Dec 26, 2018

Repository files navigation

This is NCC, the "new" C compiler. It is intended to be used as the system
compiler for BSD/64 (my port of pre-Reno 4.3BSD to Intel/AMD 64-bit desktops).

The dialect of C accepted by the compiler is basically pre-ANSI (K&R 1978) 
with some common extensions and a few minor "fixes". (See the DIALECT file for 
specifics.) This is both a function of the compiler's purpose -- to operate on
a mid-80s codebase -- and, admittedly, personal taste. 

The binary tools work on a proprietary object file format and produce a.out-
format executables. These are documented in obj.h and a.out.h respectively.

The compiler and its tools are fully functional and have been fairly well-
tested, though they are works in progress. In particular, the optimizer is
quite minimal: the framework for a more aggressive optimizer is there, but
for the moment only rudimentary data-flow analysis is done to aid the register
allocator and clean up the more egregious output from the code generator.

NCC includes:

ncc: compiler driver.
ncpp: an ANSI C89 compliant C preprocessor.
ncc1: the C compiler proper, produces assembly output
nas: accepts 16/32/64-bit Intel syntax assembly and produces .o object.
nld: the object linker - combines .o files into a.out executables.
nobj: object/executable inspector. 

These are all original works and are BSD-licensed. See LICENSE and comments.

Charles Youse <[email protected]>
December 27, 2018

About

a 64-bit C compiler (and preprocessor, assembler, linker, etc.) for AMD64

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published