Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Smalltalk-80 character meaning/usage

Tags:

smalltalk

What is the exact meaning of these characters ←, ≡, ¬, ≠, ⌾, and and how are used in Smalltalk-80?

consider the following expressions: (taken from the smalltalk-80 source code)

  1. ^self class ≡ x ≡ false
  2. ^mem ◦ ¬448 ≠ 0
  3. strm frame ← 15000 ⌾ frame origin y rect: 20000 ⌾ frame corner y.
  4. neg ← (aStream ∢ 45 "-" ifTrue: [true] ifFalse: [aStream ∢ 21 "**¬**"]).

Note: This examples were extracted from the original Xerox Alto disks found in this link: http://bitsavers.trailing-edge.com/bits/Xerox/Alto/disk_images/

like image 739
Aaron Clark Avatar asked Jan 27 '21 09:01

Aaron Clark


1 Answers

Sounds like this is a source file from a Xerox-internal version of Smalltalk-80. For the public release they must have replaced these "unusual" chars (which required custom font glyphs) with ASCII, only keeping and glyphs for the _ and ^ ASCII characters.

This is a best guess based on my experience with St76/78 (Update: confirmed by Dan Ingalls):

  1. assignment as in var ← object. Same in St80.

  2. rcvr word← arg is an alternative to word: and usually indicates assignment to a slot of the receiver (e.g. x← as in point x ← 100). St80 only allows keywords ending in a colon :.

    The parser treats as lower precedence so you can have keyword expressions on both sides of it. E.g.

    a foo: b ← c bar: d

    would eval c bar: d and pass the result as second argument to a's foo:← method).

  3. indexing as in array◦index. St80 uses at: instead.

  4. ◦← equivalent to St80's at:put: as in array◦index ← value

  5. identity, like St80's ==

  6. ¬ literal for negative numbers as in ¬1 for -1. The parser treated - as a binary message selector so another symbol had to be used for negative numbers literals.

  7. not equal, like St80's ~=

  8. not identical, like St80's ~~

  9. create a Point, like St80's @

  10. match token from stream. If the next token read from stream matches the argument, it is consumed and returned. Otherwise it answers false.

For more info check out the Smalltalk Zoo website.

like image 62
Vanessa Freudenberg Avatar answered Oct 15 '22 21:10

Vanessa Freudenberg