Project Description

Tungsten is supposed to be a memory-safe and type-safe language front-end for LLVM which borrows many elements from C and C# syntax. It is statically typed and meant to have very little overhead while providing modern language features. The compiler is written in C++20 and uses LLVM 17. I'm starting this project because I'm interested in compiler design and want to understand LLVM better.

Goals

  • [x] Language reference
  • [x] Parser
  • [ ] Lexer
  • [ ] AST
    • [ ] Math
      • [ ] Binary
      • [ ] Logical
    • [ ] Basic Keywords
    • [ ] Literals
    • [ ] Functions
    • [ ] Structs
    • [ ] Generics
    • [ ] Interfaces
  • [ ] Code Generation
  • [ ] User Project
    • [ ] Configs
    • [ ] Building

Nice-to-haves

  • [ ] Standard library
  • [ ] Examples
  • [ ] Syntax highlighting
  • [ ] Foreign Function Interface (FFI)

Resources

GitHub repository: https://github.com/marv7000/tungsten/

Looking for hackers with the skills:

llvm compiler c++

This project is part of:

Hack Week 23

Activity

  • 8 months ago: mfriedrich added keyword "llvm" to this project.
  • 8 months ago: mfriedrich added keyword "compiler" to this project.
  • 8 months ago: mfriedrich added keyword "c++" to this project.
  • 8 months ago: mtravitzky joined this project.
  • 8 months ago: mfriedrich started this project.
  • 8 months ago: mfriedrich originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    SMTGCC by fkastl

    [comment]: # (Please use the project descriptio...


    SMTGCC by fkastl

    [comment]: # (Please use the project descriptio...


    Avahi Integration and Network Connection by vojha

    Avahi Integration and Network Connection

    ...


    HelenOS: <filesystem> of a down by jjindrak

    During the previous Hackweek [0], I have succes...


    Extend GObject based introspectable API to libzypp by zbenjamin

    [comment]: # (Please use the project descriptio...


    Open Source Firmware for EV chargers using the ESP32 Chip (Autoaid / EN-Plus / EVSEDO) by bschmidt

    [comment]: # (Please use the project descriptio...