dotfiles
coollang-2020-fs
dotfiles | coollang-2020-fs | |
---|---|---|
2 | 5 | |
4 | 37 | |
- | - | |
9.1 | 9.2 | |
7 days ago | 4 months ago | |
Python | F# | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dotfiles
-
Show HN: a Rust Based CLI tool 'imgcatr' for displaying images
If you're on MacOS an imgcat tool pairs well with an imgpbcopy tool like this:
https://github.com/williamcotton/dotfiles/blob/master/bin/im...
Then creating a shell function like:
imgc() {
-
Course using F#: Write your own tiny programming system(s)
I started down this path sometime last year with Crafting Interpreters and I’ve gotten obsessed with this entire world since. I wrote a little language [0] using Python Lex Yacc a couple of months ago at work because I wanted an awk-like way to quickly make graphs/charts from the CLI. Then I wrote a parser-as-a-type in TypeScript [1] for the same grammar.
My plan was to take a look at OCaml for future tinkerings with parsers, but man, F# is already looking very familiar between TypeScript and Lex/Yacc-like things.
Thanks for this post, I think I might have a new favorite language in the oven!
[0] https://github.com/williamcotton/dotfiles/blob/master/bin/pl...
[1] https://github.com/williamcotton/dotfiles/blob/master/bin/pl...
coollang-2020-fs
-
Course using F#: Write your own tiny programming system(s)
Looks interesting.
Once I saw it's a Czech university course using F#, I knew Tomáš Petříček would be the lecturer :)
A couple years back, I wrote a compiler of tiny-ish scala subset in F# (the code is imperative, though)[1]
[1]: https://github.com/mykolav/coollang-2020-fs
-
Compiler of a small Scala subset into x86-64 assembly, in F#
The repo is on github: https://github.com/mykolav/coollang-2020-fs
-
Compiling a small Scala subset into x86-64 assembly
Go to the project's repository to explore the source code.
- Compiling a small Scala subset into x86-64 asm
-
Compiler Class
You might find [CS 6120: Advanced Compilers: The Self-Guided Online Course][1] interesting. I'm slowly working through it, but basically its focus is intermediate representations, optimizations, etc. A link to the course was on the first page of HN some time ago.
Also -- and you knew it was coming -- I've written a [toy-compiler of a Scala subset][2] myself :)
I'm new to F# and writing compilers, so I'm sure the code is full of rookie mistakes. Still, it works and does generate assembly and executables for Linux and Windows.
[1]: https://www.cs.cornell.edu/courses/cs6120/2020fa/self-guided...
[2]: https://github.com/mykolav/coollang-2020-fs
What are some alternatives?
Fabulous.Avalonia - Declarative UIs for Avalonia with F# and MVU, using Fabulous
selfie - An educational software system of a tiny self-compiling C compiler, a tiny self-executing RISC-V emulator, and a tiny self-hosting RISC-V hypervisor.
Teaching - :mortar_board: Materials for my lectures including programming langauge design, software engineering and human-computer interaction.
shecc - A self-hosting and educational C optimizing compiler
Avalonia.FuncUI - Develop cross-plattform GUI Applications using F# and Avalonia!
proc - Procedural Intel x86_64 compiler from scratch, inspired by Fortran, Pascal and Assembly.
Elm - Compiler for Elm, a functional language for reliable webapps.
scamp-cpu - A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system.
jet - A Fast C and Python like Programming Language that puts the Developer first. WIP
nelua-lang - Minimal, efficient, statically-typed and meta-programmable systems programming language heavily inspired by Lua, which compiles to C and native code.
Fable: F# |> BABEL - F# to JavaScript, TypeScript, Python, Rust and Dart Compiler
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.