All Projects → redstar → m2lang

redstar / m2lang

Licence: other
The LLVM-based Modula-2 compiler

Programming Languages

C++
36643 projects - #6 most used programming language
GAP
223 projects
CMake
9771 projects
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to m2lang

manyclangs
Repository hosting unofficial binary pack files for many commits of LLVM
Stars: ✭ 125 (+331.03%)
Mutual labels:  llvm
CastXMLSuperbuild
Build CastXML and its dependencies (LLVM/Clang)
Stars: ✭ 32 (+10.34%)
Mutual labels:  llvm
Compiler-written-in-Haskell
A Turing complete language 😉
Stars: ✭ 31 (+6.9%)
Mutual labels:  llvm
joern
Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs
Stars: ✭ 968 (+3237.93%)
Mutual labels:  llvm
llvm-epp
Efficient Path Profiling using LLVM
Stars: ✭ 16 (-44.83%)
Mutual labels:  llvm
proton-clang-build
A set of scripts to build optimized LLVM and binutils toolchains. See https://github.com/kdrag0n/proton-clang for prebuilts.
Stars: ✭ 30 (+3.45%)
Mutual labels:  llvm
verificarlo
A tool for debugging and assessing floating point precision and reproducibility.
Stars: ✭ 51 (+75.86%)
Mutual labels:  llvm
opencilk-project
Monorepo for the OpenCilk compiler, forked from llvm/llvm-project. See the OpenCilk/infrastructure repository for build and installation instructions.
Stars: ✭ 42 (+44.83%)
Mutual labels:  llvm
pymlir
Python interface for MLIR - the Multi-Level Intermediate Representation
Stars: ✭ 84 (+189.66%)
Mutual labels:  llvm
dr checker 4 linux
Port of "DR.CHECKER : A Soundy Vulnerability Detection Tool for Linux Kernel Drivers" to Clang/LLVM 10 and Linux Kernel
Stars: ✭ 34 (+17.24%)
Mutual labels:  llvm
doc
Design documents related to the decompilation pipeline.
Stars: ✭ 23 (-20.69%)
Mutual labels:  llvm
surveyor
A symbolic debugger for C/C++ (via LLVM), machine code, and JVM programs
Stars: ✭ 14 (-51.72%)
Mutual labels:  llvm
ebpfpub
ebpfpub is a generic function tracing library for Linux that supports tracepoints, kprobes and uprobes.
Stars: ✭ 86 (+196.55%)
Mutual labels:  llvm
Jazz
Jazz - modern and fast programming language.
Stars: ✭ 86 (+196.55%)
Mutual labels:  llvm
aWsm
WebAssembly ahead-of-time compiler and runtime. Focuses on generating fast code, simplicity, and portability.
Stars: ✭ 177 (+510.34%)
Mutual labels:  llvm
LOWLLVM
参照着OLLVM写的一个混淆库,只要机器上有装LLVM,就可以直接编译拿来用
Stars: ✭ 46 (+58.62%)
Mutual labels:  llvm
anvill
anvill forges beautiful LLVM bitcode out of raw machine code
Stars: ✭ 228 (+686.21%)
Mutual labels:  llvm
lldbg
A lightweight native GUI for LLDB.
Stars: ✭ 83 (+186.21%)
Mutual labels:  llvm
heyoka
C++ library for ODE integration via Taylor's method and LLVM
Stars: ✭ 151 (+420.69%)
Mutual labels:  llvm
JitCat
A C++17 library for parsing and executing expressions. Allows easy exposure of variables and functions from C++ through built-in reflection functionality.
Stars: ✭ 16 (-44.83%)
Mutual labels:  llvm

m2lang - The LLVM-based Modula-2 compiler

Build Status Build Status

Introduction

See this FOSDEM 2019 talk for some details.

Implementation decisions

  • LLVM is only external dependency
  • CMake scripts derived from clang
  • ISO Modula-2 language first
  • Use "declare-before-use" (single-pass) model
  • Goal is target several platforms from the beginning

Current status

  • The lexer is done.
  • The preprocessor (for handling of directives) is is based on the draft technical report "Interfacing Modula-2 to C", Annex B and aims to be compatible to the Macintosh p1 compiler. Parsing of directives is implemented, with mostly no functionality.
  • The parser is based on ISO Modula-2 with generic and OO additions. Some LL(1) conflicts are still left in the grammar, so not every source is parsed correctly.
  • The parser is generated by LLtool. A C++ port of LLtool is now integrated into this project, but not yet enabled.
  • Error recovery in the parser is based on "panic mode", using the follow sets of the current and the active callers.
  • The AST nodes will be generated by new tool ASTtool.
  • Error messages are outputted using llvm::SourceMgr for nice presentation.
  • Only a dummy driver exists to see the parser in action.
  • A couple of IR statements is emitted to the console after succesful parsing.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].