{"repo":"davidgiven/cowgol","free":true,"listed":false,"github":"https://github.com/davidgiven/cowgol","clone":"git clone https://github.com/davidgiven/cowgol.git","description":"A self-hosted Ada-inspired programming language for very small systems.","language":"C","stars":273,"topics":[],"license":"BSD-2-Clause","category":"self-hosted-apps","readme_excerpt":"Cowgol 2.0 ========== What? ----- Cowgol is an experimental, Ada-inspired language for very small systems (6502, Z80, etc). It's different because it's intended to be self-hosted on these devices: the end goal is to be able to rebuild the entire compiler on an 8-bit micro, although we're not there yet. Here's the bullet point list of features: - a properly type safe, modern language inspired by Ada - the compiler is written in itself and is fully bootstrapped - a table-driven, easy to port backend (the 80386 backend is 1.2kloc with no other compiler changes needed) - tiny: the 80386 Linux compiler binary is 70kB (including ELF overhead) The 8080 CP/M compiler 58kB (split across two executables) - fast: on my PC it'll compile itself in 360ms 130ms 80ms. - global analysis: dead code removal and static variable allocation, leading to small and efficient binaries About the compiler Right now it's in a state where you can build the cross-compiler on a PC, then use it to compile the compiler for your selected device, and if it's small enough to fit use that to compile and run real programs. Realistically you'll be cross-compiling on a PC. The following targets are supported. Adding more is easy. - Z80 and 8080, on CP/M. - 6502 and 65c02, on the BBC Micro with Tube second processor. - 6303, on the 6303 version of Fuzix (if anyone knows about FLEX and wants to make this work, please get in touch). - 6502 interpreted bytecode, on the BBC Micro with Tube second processor; this works ju","default_branch":null,"files":null,"tree":[],"storefront":"/r/davidgiven","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/davidgiven/cowgol/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}