Skip to content

selius/ncc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ncc - Nartov C Compiler
Copyright 2010-2011  Alexander Nartov

Description
-----------

ncc is a simple C compiler that has been developed by me during
"Programming languages and translation methods" course in the university.

Its implementation of C language standard isn't complete, only a subset is
supported. See file named grammar for more information.

The compiler generates code in GNU Assembler AT&T syntax for x86 platform.

Features
--------

- scanning and parsing of C code;
- generating AT&T syntax x86 assembler code for GAS;
- outputting a parse tree;
- outputting symbol tables;
- high and low-level optimizations, e.g.:
	- constant folding;
	- loop invariant hoisting;
	- unreachable code elimination.


Compatibility note
------------------

Compiler generates code that is compatible with GNU/Linux ABI and probably
needs some modifications for generated code to work on other platforms.

Help
----

Run ncc with --help option to get usage instructions.

Licensing
---------

ncc is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

ncc is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with ncc.  If not, see <http://www.gnu.org/licenses/>.