ngn-k-tutorial
PDP_11_Simulator
Our great sponsors
ngn-k-tutorial | PDP_11_Simulator | |
---|---|---|
11 | 1 | |
192 | 1 | |
- | - | |
8.4 | 10.0 | |
29 days ago | over 5 years ago | |
C | APL | |
- | - |
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.
ngn-k-tutorial
-
Thinking in an Array Language
Complain about the language or documentation, but array language communities are absolutely friendly to outsiders! This tutorial lists some active forums, give them a try:
https://github.com/razetime/ngn-k-tutorial/tree/main?tab=rea...
Also, have to shout out the APL Orchard, where Adám will give any visitor a personal tutorial: https://chat.stackexchange.com/rooms/52405/the-apl-orchard
-
APL: An Array Oriented Programming Language (2018)
To add to the list, this one is pretty good;
https://github.com/razetime/ngn-k-tutorial
-
rando Q vs J thoughts | Locklin on science
If you like APL, then you probably want to try K, which is an ASCII-only array language with a focus on guided minimalism. For an open source K you can try ngn/k, which has a tutorial.
- Thinking in an array language
-
Ngn/k (free K implementation)
Razetime's matmul refactoring is brilliant: https://github.com/razetime/ngn-k-tutorial/blob/main/c-think...
Finally, some nice examples of k's concision:
qs:{$[2>#?x;x;,/qs'x@&'~\:x<*1?x]} / Quicksort
- An ngn/k Tutorial
PDP_11_Simulator
-
Ngn/k (free K implementation)
I can offer you the contrary opinion: why I would not use these kind of languages.
A couple of years ago I worked on a non-trivial APL application with one of my university professors and another student. We were trying to build a CPU simulator flexible enough to handle stuff ranging from PDP-11 up to Intel x86. The goal was to run some analysis on memory accesses performed by the x86 architecture. Quite an interesting project in which I worked on for around two year.
The code is still available if you're interested: https://github.com/emlautarom1/PDP_11_Simulator
The first implementation was done in APL using a book which I don't remember as reference. We had a couple of meetings where we learned APL and the general idea behind the design. Pretty soon we started to deal with a lot of issues like:
- We only found two implementations for the APL interpreter: GNU and Dyalog. GNU is free but pretty much abandoned. Support for Windows was (is?) nonexistent. Dyalogs version is proprietary so we couldn't use that (even when a "student" version was available).
What are some alternatives?
b-decoded - arthur whitney's b interpreter translated into a more traditional flavor of C
kona - Open-source implementation of the K programming language
Kbd - Alternative unified APL keyboard layouts (AltGr, Backtick, Compositions)
april - The APL programming language (a subset thereof) compiling to Common Lisp.
kdb - kdb+ Working Group from FINOS Data Technologies program
bqn-libs - Informal collection of BQN utilities
rsbqn - An embeddable BQN virtual machine in rust. Stay tuned!
ok - An open-source interpreter for the K5 programming language.
pdp11.jl - PDP-11 Simulator written in Julia