Roo

所属分类:自动编程
开发工具:C++
文件大小:92KB
下载次数:0
上传日期:2017-09-30 14:12:22
上 传 者sh-1993
说明:  具有x86_64代码生成器的小玩具编程语言
(Little toy programming language with an x86_64 code generator)

文件列表:
.travis.yml (641, 2017-09-30)
LICENSE.md (1083, 2017-09-30)
Makefile (2212, 2017-09-30)
Prelude-dir (0, 2017-09-30)
Prelude-dir\Prelude.roo (628, 2017-09-30)
Prelude-dir\stuff.s (718, 2017-09-30)
cloc.cfg (110, 2017-09-30)
docs (0, 2017-09-30)
docs\RooModuleFormat.md (3607, 2017-09-30)
docs\Spec.md (4951, 2017-09-30)
docs\TheCompleteAST.md (1145, 2017-09-30)
roo.vim (441, 2017-09-30)
src (0, 2017-09-30)
src\air.cpp (32549, 2017-09-30)
src\air.hpp (11182, 2017-09-30)
src\ast.cpp (12592, 2017-09-30)
src\ast.hpp (9779, 2017-09-30)
src\codegen.cpp (3850, 2017-09-30)
src\codegen.hpp (2160, 2017-09-30)
src\common.cpp (2862, 2017-09-30)
src\common.hpp (1140, 2017-09-30)
src\elf (0, 2017-09-30)
src\elf\elf.cpp (30064, 2017-09-30)
src\elf\elf.hpp (7984, 2017-09-30)
src\error.cpp (8427, 2017-09-30)
src\error.hpp (9229, 2017-09-30)
src\ir.cpp (12628, 2017-09-30)
src\ir.hpp (8929, 2017-09-30)
src\main.cpp (4363, 2017-09-30)
src\module.cpp (9144, 2017-09-30)
src\module.hpp (288, 2017-09-30)
src\parser.hpp (18550, 2017-09-30)
src\parsing.cpp (34895, 2017-09-30)
src\parsing.hpp (1250, 2017-09-30)
src\passes (0, 2017-09-30)
src\passes\conditionFolder.cpp (6177, 2017-09-30)
... ...

# Roo [![Build Status](https://travis-ci.org/IsaacWoods/Roo.svg?branch=master)](https://travis-ci.org/IsaacWoods/Roo) Roo is a imperitive programming language that takes concepts from functional programming. Its central goal is to avoid the kitchen-sink-esque hodgepodge of languages like C++, instead expressing logic through fewer, more powerful features. ### Aims * No separation of definition and implementation (no headers) * Easier build process - nice source and dependency management * Safety - strong type-checking and powerful expression of programmer intent * Terse, expressive syntax - no extranious punctuation It looks something like this: ``` roo #[Name(example)] import Prelude type color { r : float g : float b : float a : float } fn PrintColor(color : color&) { PrintFmt("Color: ({}, {}, {}, {})\n", color.r, color.g, color.b, color.a) } #[Entry] fn Main() -> int { #[Debug] Print("Hello, World!\n") // Make and print a color myColor : color{1.0f, 0.0f, 1.0f, 1.0f} PrintColor(myColor) return 0 } ``` ### Using the compiler * At the moment, The compiler can only produce executables usable on x86_***, System-V, ELF-compatible systems * (Temporary step) Run `make prelude` to build `Prelude` (our standard library) * Run `./roo` to compile and link all the files in the current directory * Various DOT files will also be produced, which may be converted to PNG with `dot -Tpng -o {file}.png {file}.dot` ### Contributing Contributions are welcome. Current tasks and long-term goals can be found on the [Trello](https://trello.com/b/zxHvpzTz/roo). Please keep to the style of the existing code.

近期下载者

相关文件


收藏者