All Projects → 2bt → minilang

2bt / minilang

Licence: other
Bootstrapped compiler of a C-like but Python-looking language

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to minilang

x86e
A simple x86 emulator, debugger, and editor in JavaScript.
Stars: ✭ 89 (+134.21%)
Mutual labels:  x86-64
insaneworks-packer-template
CentOS 7-8 8Stream / AlmaLinux 8 / FreeBSD 12 - 13 x64 + VirtualBox / VMWare for Packer Template + FreeBSD 13 / AlmaLinux 9 + Parallels
Stars: ✭ 38 (+0%)
Mutual labels:  x86-64
OpenWrts
OPENWRT 固件(Raspberry Pi4B/3B+,NanoPi R4S,Orange Pi R1Plus,x86) 依源码更新自动编译
Stars: ✭ 100 (+163.16%)
Mutual labels:  x86-64
dynarmic
An ARM dynamic recompiler.
Stars: ✭ 675 (+1676.32%)
Mutual labels:  x86-64
uplift
Compatibility layer for running Orbis executables natively on Windows.
Stars: ✭ 42 (+10.53%)
Mutual labels:  x86-64
AheuiJIT
Aheui JIT compiler for PC and web
Stars: ✭ 27 (-28.95%)
Mutual labels:  x86-64
RenHook
An open-source x86 / x86-64 hooking library for Windows.
Stars: ✭ 80 (+110.53%)
Mutual labels:  x86-64
binary-decompilation
Extracting high level semantic information from binary code
Stars: ✭ 55 (+44.74%)
Mutual labels:  x86-64
yacp
Yet Another Cygwin Ports
Stars: ✭ 102 (+168.42%)
Mutual labels:  x86-64
ria-jit
Lightweight and performant dynamic binary translation for RISC–V code on x86–64
Stars: ✭ 38 (+0%)
Mutual labels:  x86-64
ida-embed-arch-disasm
Allows IDA PRO to disassemble x86-64 code (WOW64) in 32-bit database
Stars: ✭ 22 (-42.11%)
Mutual labels:  x86-64
PBD
🖨️🐞 Printf Based Debugger, a user-friendly C debugger
Stars: ✭ 52 (+36.84%)
Mutual labels:  x86-64
kcs
Scripting in C with JIT(x64)/VM.
Stars: ✭ 25 (-34.21%)
Mutual labels:  x86-64
Reloaded.Assembler
Minimal .NET wrapper around the simple, easy to use Flat Assembler written by Tomasz Grysztar. Supports both x64 and x86 development.
Stars: ✭ 17 (-55.26%)
Mutual labels:  x86-64
nolimix86
LLVM-based x86 emulator with support for unlimited virtual registers, used before the register allocation pass
Stars: ✭ 19 (-50%)
Mutual labels:  x86-64
rust-kernel-barebones
A minimal 64-bit rust kernel and a bunch of configuration scripts that can be used to bootstrap Operating system development using Nightly-Rust compiler.
Stars: ✭ 42 (+10.53%)
Mutual labels:  x86-64
OpenWRT-x86 64-Install
Create and deploy a LEGACY or EFI OpenWRT bootable image for x86_64 processors
Stars: ✭ 15 (-60.53%)
Mutual labels:  x86-64
fadec
A fast and lightweight decoder for x86 and x86-64 and encoder for x86-64.
Stars: ✭ 44 (+15.79%)
Mutual labels:  x86-64
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-57.89%)
Mutual labels:  x86-64
x86-Assembly-Reverse-Engineering
🛠 Knowledge about the topic of x86 assembly & disassembly 🛠
Stars: ✭ 27 (-28.95%)
Mutual labels:  x86-64

minilang

Inspired by BASICO, minilang is a little programming language. My intention was to keep the implementation brief, yet readable. It is bootstrapped, thus proving to be reasonably expressive. The compiler outputs x86-64 ASM code. Similar to Python, code blocks are formed via indentation. There is no type checking whatsoever, so be careful. Please, look into minilang.mini and you will quickly get the idea. Obligatorily, here is your first programme:

main():puts("Hello, world!")

Compile the throwaway compiler:

$ c99 minilang.c -o minilang

Bootstrap thus:

$ ./minilang minilang.mini minilang.s       # compile with throwaway compiler
$ gcc minilang.s -o minilang_jr             # GCC assembles the executable
$ ./minilang_jr minilang.mini minilang_jr.s # compile with bootstrapped compiler
$ diff minilang.s minilang_jr.s             # compare output -> equal
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].