

Sail Programming Language Tutorial (1976) - brudgers
http://pdp-10.trailing-edge.com/decus_20tap1_198111/01/decus/20-0002/sail.tut.html

======
drfuchs
If the use of the underscore character ("_") for assignment statements seems
odd, keep in mind that the Sail computer's native character set included a
left-arrow character, and it's what was really used for assignment. The
present document is clearly an ascii-ized version of the real manual, for use
on non-Sail machines (such as regular Dec PDP-20s running Tops-20). Other
special characters included less-than-or-equal, not-equal, intersection,
union, etc. Check out [http://www.saildart.org/allow/sail-charset-
utf8.html](http://www.saildart.org/allow/sail-charset-utf8.html) for the
details. And if you want to see what the tutorial really looked like, there's
a scanned pdf at www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA042494

~~~
seanmcdirmid
My language uses left arrow* for type annotation, it is simply typed as <\-
and the editor renders it as a unicode left arrow. Assignment is =, but it is
rendered as a unicode :=; equality is == but rendered as a more compact
unicode ==. Check out:

[https://youtu.be/__28QzBdyBU](https://youtu.be/__28QzBdyBU)

Back the future, I guess.

* I wanted to use Pascal-style ":" for type annotations, but I based my syntax on Python, which uses ":" for blocks.

------
drfuchs
The precursors to TeX (1978-82) and Metafont (1979-83) are good examples of
complete, non-trivial Sail programs. Both were written by Donald Knuth; the
sources for prototype-TeX are in
[http://www.saildart.org/[TEX,DEK]](http://www.saildart.org/\[TEX,DEK\]) (see
the latest rev of each TEX*.SAI file); while prototype-MF is in
[http://www.saildart.org/[MF,DEK]](http://www.saildart.org/\[MF,DEK\])

