Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tcort/cmc
C Minus Compiler
https://github.com/tcort/cmc
c-minus compiler
Last synced: 23 days ago
JSON representation
C Minus Compiler
- Host: GitHub
- URL: https://github.com/tcort/cmc
- Owner: tcort
- License: mit
- Created: 2017-10-20T23:26:31.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-26T09:02:35.000Z (about 4 years ago)
- Last Synced: 2024-04-08T17:19:26.728Z (7 months ago)
- Topics: c-minus, compiler
- Language: Go
- Size: 20.5 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# cmc
`cmc` is a compiler for the C Minus programming language, a small subset of the `C` programming language
which is described in "Compiler Construction: Principles and Practice" by Kenneth C. Louden.## Motivation
In my spare time, I have an interest in compilers and interpreters for toy languages. I've developed a
[TinyBASIC](https://github.com/tcort/tcbasic) interpreter, a [Micro Manual LISP](https://github.com/tcort/edgar) interpreter,
and an assembler and virtual machine for the [Little Man Computer](https://github.com/tcort/lmc). However, I've
never developed a full compiler, so this is the project to do it.I was first introduced to the C Minus programming language in a university compilers course. It was
a one semester undergraduate course, so we weren't able to develop a full compiler, only a scanner, parser,
and semantic checker. Since then, I've always wanted to do a full C Minus compiler.I really want to gain more experience with the [go](https://golang.org/) programming language, so it was
chosen as the implementation language for no particular reason other than me wanting to experiment.## Current Status
The project is still in its infancy. I've got a working scanner, but there is still a lot of work left.
## Requirements
Compiling this software just requires a [go](https://golang.org/) toolchain. There are no external dependencies.
## Important Files
* `LICENSE` - the license which applies to all files within this repository
* `LANG.md` - language specification for the C Minus programming language
* `HACKING.md` - an English language map of the code base