Skip to content

Commit 6048ea9

Browse files
committed
Merge branch 'main' of https://github.com/rtoal/ple
2 parents bc32f7a + e21681e commit 6048ea9

File tree

8 files changed

+48
-1
lines changed

8 files changed

+48
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
A collection of illustrative examples in close to 100 programming languages, including every code snippet used in each edition of the book [Programming Language Explorations](https://rtoal.github.io/ple).
44

5-
![](docs/resources/05ab1e-logo-24.png) ![](docs/resources/ada-logo-24.png) ![](docs/resources/agda-logo-24.png) ![](docs/resources/apl-logo-24.png) ![](docs/resources/assemblyscript-logo-24.png) ![](docs/resources/awk-logo-24.png) ![](docs/resources/ballerina-logo-24.png) ![](docs/resources/bash-logo-24.png) ![](docs/resources/berry-logo-24.png) ![](docs/resources/boo-logo-24.png) ![](docs/resources/c-logo-24.png) ![](docs/resources/carbon-logo-24.png) ![](docs/resources/ceylon-logo-24.png) ![](docs/resources/chapel-logo-24.png) ![](docs/resources/citrine-logo-24.png) ![](docs/resources/clojure-logo-24.png) ![](docs/resources/clu-logo-24.png) ![](docs/resources/cobol-logo-24.png) ![](docs/resources/coffeescript-logo-24.png) ![](docs/resources/commonlisp-logo-24.png) ![](docs/resources/cpp-logo-24.png) ![](docs/resources/crystal-logo-24.png) ![](docs/resources/csharp-logo-24.png) ![](docs/resources/d-logo-24.png) ![](docs/resources/dart-logo-24.png) ![](docs/resources/eiffel-logo-24.png) ![](docs/resources/elixir-logo-24.png) ![](docs/resources/elm-logo-24.png) ![](docs/resources/erlang-logo-24.png) ![](docs/resources/factor-logo-24.png) ![](docs/resources/falcon-logo-24.png) ![](docs/resources/fantom-logo-24.png) ![](docs/resources/fish-logo-24.png) ![](docs/resources/forth-logo-24.png) ![](docs/resources/fortran-logo-24.png) ![](docs/resources/fsharp-logo-24.png) ![](docs/resources/futhark-logo-24.png) ![](docs/resources/gdscript-logo-24.png) ![](docs/resources/gleam-logo-24.png) ![](docs/resources/gml-logo-24.png) ![](docs/resources/go-logo-24.png) ![](docs/resources/gosu-logo-24.png) ![](docs/resources/gp-logo-24.png) ![](docs/resources/grain-logo-24.png) ![](docs/resources/groovy-logo-24.png) ![](docs/resources/hack-logo-24.png) ![](docs/resources/haskell-logo-24.png) ![](docs/resources/haxe-logo-24.png) ![](docs/resources/hylo-logo-24.png) ![](docs/resources/idris-logo-24.png) ![](docs/resources/io-logo-24.png) ![](docs/resources/j-logo-24.png) ![](docs/resources/jai-logo-24.png) ![](docs/resources/janet-logo-24.png) ![](docs/resources/java-logo-24.png) ![](docs/resources/javascript-logo-24.png) ![](docs/resources/julia-logo-24.png) ![](docs/resources/k-logo-24.png) ![](docs/resources/kitten-logo-24.png) ![](docs/resources/koka-logo-24.png) ![](docs/resources/kotlin-logo-24.png) ![](docs/resources/lean-logo-24.png) ![](docs/resources/linotte-logo-24.png) ![](docs/resources/livescript-logo-24.png) ![](docs/resources/lobster-logo-24.png) ![](docs/resources/lolcode-logo-24.png) ![](docs/resources/lua-logo-24.png) ![](docs/resources/luna-logo-24.png) ![](docs/resources/mathematica-logo-24.png) ![](docs/resources/matlab-logo-24.png) ![](docs/resources/miranda-logo-24.png) ![](docs/resources/mercury-logo-24.png) ![](docs/resources/modula3-logo-24.png) ![](docs/resources/mojo-logo-24.png) ![](docs/resources/nasm-logo-24.png) ![](docs/resources/neko-logo-24.png) ![](docs/resources/nemerle-logo-24.png) ![](docs/resources/nim-logo-24.png) ![](docs/resources/oberon-logo-24.png) ![](docs/resources/ocaml-logo-24.png) ![](docs/resources/octave-logo-24.png) ![](docs/resources/odin-logo-24.png) ![](docs/resources/onyx-logo-24.png) ![](docs/resources/parasail-logo-24.png) ![](docs/resources/perl-logo-24.png) ![](docs/resources/php-logo-24.png) ![](docs/resources/powershell-logo-24.png) ![](docs/resources/purescript-logo-24.png) ![](docs/resources/pyth-logo-24.png) ![](docs/resources/python-logo-24.png) ![](docs/resources/qsharp-logo-24.png) ![](docs/resources/quorum-logo-24.png) ![](docs/resources/r-logo-24.png) ![](docs/resources/racket-logo-24.png) ![](docs/resources/raku-logo-24.png) ![](docs/resources/roy-logo-24.png) ![](docs/resources/ruby-logo-24.png) ![](docs/resources/rust-logo-24.png) ![](docs/resources/scala-logo-24.png) ![](docs/resources/scratch-logo-24.png) ![](docs/resources/self-logo-24.png) ![](docs/resources/simula-logo-24.png) ![](docs/resources/smalltalk-logo-24.png) ![](docs/resources/sml-logo-24.png) ![](docs/resources/snap-logo-24.png) ![](docs/resources/squirrel-logo-24.png) ![](docs/resources/swift-logo-24.png) ![](docs/resources/tcl-logo-24.png) ![](docs/resources/typescript-logo-24.png) ![](docs/resources/unison-logo-24.png) ![](docs/resources/ur-logo-24.png) ![](docs/resources/v-logo-24.png) ![](docs/resources/vala-logo-24.png) ![](docs/resources/vale-logo-24.png) ![](docs/resources/verse-logo-24.png) ![](docs/resources/vyxal-logo-24.png) ![](docs/resources/whiley-logo-24.png) ![](docs/resources/whitespace-logo-24.png) ![](docs/resources/zig-logo-24.png) ![](docs/resources/zsh-logo-24.png)
5+
![](docs/resources/05ab1e-logo-24.png) ![](docs/resources/ada-logo-24.png) ![](docs/resources/agda-logo-24.png) ![](docs/resources/apl-logo-24.png) ![](docs/resources/assemblyscript-logo-24.png) ![](docs/resources/awk-logo-24.png) ![](docs/resources/ballerina-logo-24.png) ![](docs/resources/bash-logo-24.png) ![](docs/resources/berry-logo-24.png) ![](docs/resources/boo-logo-24.png) ![](docs/resources/c-logo-24.png) ![](docs/resources/carbon-logo-24.png) ![](docs/resources/ceylon-logo-24.png) ![](docs/resources/chapel-logo-24.png) ![](docs/resources/citrine-logo-24.png) ![](docs/resources/clojure-logo-24.png) ![](docs/resources/clu-logo-24.png) ![](docs/resources/cobol-logo-24.png) ![](docs/resources/coffeescript-logo-24.png) ![](docs/resources/commonlisp-logo-24.png) ![](docs/resources/cpp-logo-24.png) ![](docs/resources/crystal-logo-24.png) ![](docs/resources/csharp-logo-24.png) ![](docs/resources/d-logo-24.png) ![](docs/resources/dart-logo-24.png) ![](docs/resources/eiffel-logo-24.png) ![](docs/resources/elixir-logo-24.png) ![](docs/resources/elm-logo-24.png) ![](docs/resources/erlang-logo-24.png) ![](docs/resources/factor-logo-24.png) ![](docs/resources/falcon-logo-24.png) ![](docs/resources/fantom-logo-24.png) ![](docs/resources/fish-logo-24.png) ![](docs/resources/forth-logo-24.png) ![](docs/resources/fortran-logo-24.png) ![](docs/resources/fsharp-logo-24.png) ![](docs/resources/futhark-logo-24.png) ![](docs/resources/gdscript-logo-24.png) ![](docs/resources/gleam-logo-24.png) ![](docs/resources/gml-logo-24.png) ![](docs/resources/go-logo-24.png) ![](docs/resources/gosu-logo-24.png) ![](docs/resources/gp-logo-24.png) ![](docs/resources/grain-logo-24.png) ![](docs/resources/groovy-logo-24.png) ![](docs/resources/hack-logo-24.png) ![](docs/resources/haskell-logo-24.png) ![](docs/resources/haxe-logo-24.png) ![](docs/resources/holyc-logo-24.png) ![](docs/resources/hylo-logo-24.png) ![](docs/resources/idris-logo-24.png) ![](docs/resources/io-logo-24.png) ![](docs/resources/j-logo-24.png) ![](docs/resources/jai-logo-24.png) ![](docs/resources/janet-logo-24.png) ![](docs/resources/java-logo-24.png) ![](docs/resources/javascript-logo-24.png) ![](docs/resources/julia-logo-24.png) ![](docs/resources/k-logo-24.png) ![](docs/resources/kitten-logo-24.png) ![](docs/resources/koka-logo-24.png) ![](docs/resources/kotlin-logo-24.png) ![](docs/resources/lean-logo-24.png) ![](docs/resources/linotte-logo-24.png) ![](docs/resources/livescript-logo-24.png) ![](docs/resources/lobster-logo-24.png) ![](docs/resources/lolcode-logo-24.png) ![](docs/resources/lua-logo-24.png) ![](docs/resources/luna-logo-24.png) ![](docs/resources/mathematica-logo-24.png) ![](docs/resources/matlab-logo-24.png) ![](docs/resources/miranda-logo-24.png) ![](docs/resources/mercury-logo-24.png) ![](docs/resources/modula3-logo-24.png) ![](docs/resources/mojo-logo-24.png) ![](docs/resources/nasm-logo-24.png) ![](docs/resources/neko-logo-24.png) ![](docs/resources/nemerle-logo-24.png) ![](docs/resources/nim-logo-24.png) ![](docs/resources/oberon-logo-24.png) ![](docs/resources/ocaml-logo-24.png) ![](docs/resources/octave-logo-24.png) ![](docs/resources/odin-logo-24.png) ![](docs/resources/onyx-logo-24.png) ![](docs/resources/parasail-logo-24.png) ![](docs/resources/perl-logo-24.png) ![](docs/resources/php-logo-24.png) ![](docs/resources/powershell-logo-24.png) ![](docs/resources/purescript-logo-24.png) ![](docs/resources/pyth-logo-24.png) ![](docs/resources/python-logo-24.png) ![](docs/resources/qsharp-logo-24.png) ![](docs/resources/quorum-logo-24.png) ![](docs/resources/r-logo-24.png) ![](docs/resources/racket-logo-24.png) ![](docs/resources/raku-logo-24.png) ![](docs/resources/reason-logo-24.png)![](docs/resources/roy-logo-24.png) ![](docs/resources/ruby-logo-24.png) ![](docs/resources/rust-logo-24.png) ![](docs/resources/scala-logo-24.png) ![](docs/resources/scratch-logo-24.png) ![](docs/resources/self-logo-24.png) ![](docs/resources/simula-logo-24.png) ![](docs/resources/smalltalk-logo-24.png) ![](docs/resources/sml-logo-24.png) ![](docs/resources/snap-logo-24.png) ![](docs/resources/squirrel-logo-24.png) ![](docs/resources/swift-logo-24.png) ![](docs/resources/tcl-logo-24.png) ![](docs/resources/typescript-logo-24.png) ![](docs/resources/unison-logo-24.png) ![](docs/resources/ur-logo-24.png) ![](docs/resources/v-logo-24.png) ![](docs/resources/vala-logo-24.png) ![](docs/resources/vale-logo-24.png) ![](docs/resources/verse-logo-24.png) ![](docs/resources/vyxal-logo-24.png) ![](docs/resources/whiley-logo-24.png) ![](docs/resources/whitespace-logo-24.png) ![](docs/resources/zig-logo-24.png) ![](docs/resources/zsh-logo-24.png)
66

77
Most of the programs in this repo can be run at [Replit](https://replit.com) or [JDoodle](https://www.jdoodle.com/). Many can also be run at [TIO](https://tio.run), [OneCompiler](https://onecompiler.com/), or [Attempt this Online](https://ato.pxeger.com/about). Many languages feature their own ”official” online playgrounds, notably [Rust](https://play.rust-lang.org/), [Go](https://play.golang.com/), [TypeScript](https://www.typescriptlang.org/play), and [Haskell](https://play.haskell.org/).
88

docs/resources/scripts/info.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,13 @@ var langs = [
606606
n: "Haxe",
607607
d: "Description coming soon",
608608
},
609+
{
610+
i: "holyc",
611+
n: "HolyC",
612+
d: "Description coming soon",
613+
h: "https://holyc-lang.com/",
614+
w: "https://en.wikipedia.org/wiki/HolyC",
615+
},
609616
{
610617
i: "hylo",
611618
n: "Hylo",
@@ -1186,6 +1193,14 @@ var langs = [
11861193
r: "Being Perl 6",
11871194
t: ["Scripting", "Gradually Typed"],
11881195
},
1196+
{
1197+
i: "reason",
1198+
n: "Reason",
1199+
h: "https://reasonml.github.io/",
1200+
w: "https://en.wikipedia.org/wiki/Reason_(programming_language)",
1201+
d: "Description coming soon",
1202+
f: 2016,
1203+
},
11891204
{
11901205
i: "roy",
11911206
n: "Roy",
@@ -1451,6 +1466,13 @@ var langs = [
14511466
n: "Vyxal",
14521467
d: "Description coming soon",
14531468
},
1469+
{
1470+
i: "wasm",
1471+
n: "WebAssembly",
1472+
h: "https://webassembly.org/",
1473+
w: "https://en.wikipedia.org/wiki/WebAssembly",
1474+
d: "Description coming soon",
1475+
},
14541476
{
14551477
i: "whiley",
14561478
n: "Whiley",

docs/resources/wasm-logo-24.png

1.66 KB
Loading

docs/resources/wasm-logo-240.png

20.5 KB
Loading

docs/resources/wasm-logo-64.png

4.16 KB
Loading

wasm/example.wasm

120 Bytes
Binary file not shown.

wasm/example.wat

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
(module
2+
(import "env" "print"
3+
(func $print (param f64)))
4+
(import "env" "pow"
5+
(func $pow (param f64) (param f64) (result f64)))
6+
7+
(func $prev (param $x f64) (result f64)
8+
(local.get $x) (f64.const 1) (f64.sub)
9+
)
10+
11+
(func (export "main")
12+
(local $x f64) (f64.const 5) (local.set $x)
13+
(local.get $x) (f64.const 21) (call $pow)
14+
(call $prev) (call $print)
15+
)
16+
)

wasm/runwasm.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import * as fs from "fs";
2+
3+
const buffer = fs.readFileSync(process.argv[2]);
4+
const env = {
5+
print: (x) => console.log(x),
6+
pow: (x, y) => x ** y,
7+
};
8+
const wasmModule = await WebAssembly.instantiate(buffer, { env });
9+
wasmModule.instance.exports.main();

0 commit comments

Comments
 (0)