2020-03-29 17:40:03 +02:00
2019-12-29 02:56:42 +01:00

C3 Language

C3 is a C-like language trying to be "an incremental improvement over C" rather than a whole new language. C3 owes a lot to the ideas of the C2 language: to iterate on top of C without trying to be a whole new language.

C3 tries to be an alternative in the the C/C++ niche: fast and close to the metal.

Design Principles

  • Procedural "get things done"-type of language.
  • Try to stay close to C - only change where truly needed.
  • Flawless C integration.
  • Learning C3 should be easy for a C programmer.
  • Dare violating the "close to metal" principle if the value is great.
  • Data is inert.
  • Avoid "big ideas".
  • Avoid the kitchen sink language trap.

Current status

Most work is still being done in the design draft here: https://c3lang.github.io/c3docs/. If you have suggestions, send a mail to christoffer@aegik.com, file an issue or discuss C3 on the r/ProgrammingLanguages Discord server: https://discord.gg/cfu4wdk

There are some small work being done on the parser here, but most of the structure is still missing:

What's missing in the parser

  • asm sections.
  • Macro parameter lists to imports.
  • auxiliary data for enums.
  • Docs not linked to statements/functions/declarations.

What's missing in the semantic analyser

  • Incomplete handling of imports.
  • next not correct
  • Function signatures incomplete.
  • Function typedef not done.
  • asm not done.
  • catch, throws and try statements.
  • generic not analysed.
  • attribute not analysed.
  • $switch and $for not handled.
  • Enums not correctly handled.
  • Errors not correctly handled.
  • Type resolution not complete for all types.
  • type not handled.
  • Identifier analysis incomplete.
  • Macro call not handled completely.
  • Function calls not handled completely.
  • Struct initializers not complete.
  • Varargs.

What's missing overall

  • Integration with C.

What's working?

  • Lexing and parsing works (except for the exceptions noted above).
  • Simple "hello world"

If you wish to contribute with ideas, please file issues on the c3docs: https://github.com/c3lang/c3docs instead of the compiler.

Description
Compiler for the C3 language
Readme MIT 29 MiB
Languages
C 96.4%
CMake 0.9%
Yacc 0.7%
Shell 0.5%
C++ 0.3%
Other 1.1%