HackerFoo / Poprc
Licence: gpl-3.0
A Compiler for the Popr Language
Stars: ✭ 170
Projects that are alternatives of or similar to Poprc
Reduceron
FPGA Haskell machine with game changing performance. Reduceron is Matthew Naylor, Colin Runciman and Jason Reich's high performance FPGA softcore for running lazy functional programs, including hardware garbage collection. Reduceron has been implemented on various FPGAs with clock frequency ranging from 60 to 150 MHz depending on the FPGA. A high degree of parallelism allows Reduceron to implement graph evaluation very efficiently. This fork aims to continue development on this, with a view to practical applications. Comments, questions, etc are welcome.
Stars: ✭ 308 (+81.18%)
Mutual labels: compiler, verilog
Enso
Hybrid visual and textual functional programming.
Stars: ✭ 5,238 (+2981.18%)
Mutual labels: compiler, functional
Enso Archive
Looking for Enso, the visual programming language? ➡️ https://github.com/enso-org/enso
Stars: ✭ 305 (+79.41%)
Mutual labels: compiler, functional
Slang
SystemVerilog compiler and language services
Stars: ✭ 145 (-14.71%)
Mutual labels: compiler, verilog
Awesome Machine Learning In Compilers
Must read research papers and links to tools and datasets that are related to using machine learning for compilers and systems optimisation
Stars: ✭ 168 (-1.18%)
Mutual labels: compiler
Sha256
Hardware implementation of the SHA-256 cryptographic hash function
Stars: ✭ 160 (-5.88%)
Mutual labels: verilog
Kotlin Openapi Spring Functional Template
🍃 Kotlin Spring 5 Webflux functional application with api request validation and interactive api doc
Stars: ✭ 159 (-6.47%)
Mutual labels: functional
Redux Zero
A lightweight state container based on Redux
Stars: ✭ 1,977 (+1062.94%)
Mutual labels: functional
Elena Lang
ELENA is a general-purpose language with late binding. It is multi-paradigm, combining features of functional and object-oriented programming. Rich set of tools are provided to deal with message dispatching : multi-methods, message qualifying, generic message handlers, run-time interfaces
Stars: ✭ 161 (-5.29%)
Mutual labels: compiler
Jitfromscratch
Example project from my talks in the LLVM Social Berlin and C++ User Group
Stars: ✭ 158 (-7.06%)
Mutual labels: compiler
Metroboy
MetroBoy - A playable, circuit-level simulation of an entire Game Boy
Stars: ✭ 169 (-0.59%)
Mutual labels: verilog
Compile To Web
Discover what languages can be compiled to Web Assembly
Stars: ✭ 164 (-3.53%)
Mutual labels: compiler
Popr Compiler
This project implements a compiler for the Popr language.
Please see this presentation for more information, and the tutorial to understand the language semantics.
More examples can be found in lib.ppr and tests.ppr.
You can try the compiler online using the PoprC web version.
PoprC targets both C and Verilog. For example, the familiar Fibonacci function:
fib: [dup 1 <= !] [dup 1- dup 1- fib swap fib + swap 1 > !] | pushl head
can be compiled to Verilog and synthesized or simulated:
Note the stack pointer (sp). Recursion is fully supported, but must be bounded.
Here's a working AXI4-Lite slave:
stream_read_array: swap [swap read_array swap] map_with
stream_write_array: swap2 [-swap2 swap write_array dup True swap seq swap] zip_with
stream_read_write_array:
swap3 dup_array [-swap2 swap stream_write_array] dip31 swap
[swap stream_read_array] dip21
when wrapped with a bit of Verilog to map the signals properly.
License
The license for the Popr Compiler is GPL3. See LICENSE for more information.
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].