Modified | DDT |>| FRI.DEC,971212,13:47-5 | CoSy/Home ; CoSy/Current © Coherent Systems Inc .

NY/SigAPL:0
 
    From: boyd@bestweb.net (James H. Boyd) 97/11/29 23:09
 Subject: NY/SIGAPL Meeting Thur 12/11/97: Alan Graham on his language 0

DECEMBER MEETING ANNOUNCEMENT of NY/SIGAPL, the New York City Area
chapter of SIGAPL (the ACM Special Interest Group on APL)
Title of Talk:  0 (Zero, Oh, Nothing, ...): The Future of Programming
      Speaker:  Alan Graham
Thursday, December 11, 1997 at Philips Electronics North America
 125 Park Avenue, 4th Floor (Entrance on 42nd St., east of Park Ave.,
 opposite Grand Central Terminal)
The meeting will be preceded by a NY/SIGAPL Executive Committee
meeting at 5:30. Alan's talk will begin at 6:30 PM.
Meeting fee: NY/SIGAPL member, $5; non-member $10

Alan will discuss the 0 language through illustrations and examples of 0
code. The floor will be open for discussion and questions following the talk.

Complexity is strangling the computer industry. Programs bulge near bursting
with features rarely used. Bugs and poor design make systems fundamentally
unreliable. The vast number of disjoint facilities make reuse and feature
composition impossible.

0 (Zero) is small, simple, and powerful programming language and system.

0 is designed to include the major ideas in programming in a simple unified
 approach. Starting with C, LISP, Smalltalk, and APL; overlapping features
 were simplified and combined, poorly designed features were removed, and
 syntax was simplified and regularized.
0 is based on five core ideas:
  Abstraction separates function from implementation
  Functions map arguments to results
  Types classify data and functions by domain
  Atoms and Collections are the only data structures
  Implementation maps the abstract to the concrete.

0 includes the familiar:
  Control structures, like C
  Functions as data, like LISP
  Object-oriented features, like Java
  Arrays, like APL.

0 plays well with others: 0 programs can directly access files, OS
 facilities, and other programs and data locally or across the network.

0 is small: The 0 compiler is written in less than 1000 lines of 0 source.

Parts of the compiler will be shown to illustrate the simple reflective
approach and good 0 programming style.

Contact info:
Alan Graham
5 Winslow Place
Chapel Hill, NC 27514-0991
(919)942-9369
alang@iname.com
  ============================: THU.DEC,971211 :============================
|18:29| Alan in Holand Tunnel .  AdamKurtez fills in w mathy stuff :
   4
   1 1 1 1
   1 1 2
   2 2
   1 3
   4
 p 4  <--> 5  | partitions of 4  | nasty formula .

R is PARTITIONS N
 go ( K > 1 ) take L1
 R is C , 1   &  go 0
L1: T is PART N-1
 R is 1 , each T
  I is 0
L2: go (( shape T ) < I is T + 1 ) take 0
 K is I pik T
 U is  UNIQUE K   &   X is K ~ U
L3:  ??
  | EXPLODES BY N = 20 |

   126 6 * 21  | 153 = 3 x 51  |  688 = 8 x 86

   2187  = 27 x 81     |  1827 = 21 x 87

   ( ( 8 % 2 ) - 1 ) * 7 |>| 2187
   ( 8 + 1 ) * 7 % 2     |>| 2187

          ( +/ 1 THRU 7 ) + 8 x 9  |>| 100

     17 + 45 + 36  |>| 98   | r + 2 |>| 100
| 2 + 3 ) = 5 x 1
| 2 x 3 ) = 5 + 1
   ( a % b ) = c - d  |  a - b ) = c % d   | one unique in itegers .

|19:34| \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \
 Alan here . No machine .
 Been inventing 0 over many years . Syracuse `72 .
 Not instantly in love w APL .
 Preserve array qualities - discard things don`t like . Gave same talk @
 Soliton .   | will be on www.SimpleIsBetter.com
 On last implementation of  0  he intends to do .  Looking for assistance .
 Am intending to make commercial . but cant sell programming langs .
 Advised against Whitney writing A at MorganStanley .
 Programmer & Business person - loves Visual Basic environment ~ lang
 Love Hate Lisp - way it deals w symbols .
 Scheme added  : first  , last , rest .
 J - fast , numerical ,  beter functional lang than Backus  FX .
 Ken & Roger just too smart . Hook & Fork - don`t want to do ballet trick to
  do simple things . Went to see Fred Brooks . New Book : computer
  architecture defined in APL .
 0 compiler Written in 0 - User interface in Visual Basic .
  between 1 - 2 k lines of code | boot strap by compiling in head
 Expression evaluator small .  scalable -  f each A B - Spawns 2 tasks on NT
 Variable in 0 also file . - can span networks . a is b , c | surprizingly
  efficient .
( System not solid enough to bring sample )
 Compiles to byte codes . - Compiler to C far from done .
0 vs  MyFavoriteProgrammingLanguage :
 C :  get good assembly language .  if know compiler .
   ~like :  pointers  ;  while ( X == 0 ) vs   =  asignment .
 Maps |  a is iota 10    to   a : _i 10   | auto - modeless .
 monadic & dyadic goto . JimRyan : dyadic  goto is fn . out of deep structs.
  LA is name of fn . RA is line .
  A+  , K  , J , not allow labels .
  Strings , | ( # "Don't" ) = 1 )  string | vs | ( # 'Don''t' ) = 5 |
vector
  symbols . | ~ like LISP  quirky (?!)
  Each symbol stored only once in WS .  like  K
  is ATOMs . | format to char vec .  | like Lisp in `58 .
   Lisp :    ( F G )  s expression   |  fmt  +  |  Type of thing on ex stk .
  fmt F  |>|  { 1 + ra } del |
  + , x  | catinates .
 SMALLTALK : poor Scalabity   | APL before NameSpaces .
  C problem of memory leaks .
 SYNTAX :
       A       |>| 4
       F       |>| +
     From Jim Ryan :
               x     y
                     f      | must  use   f [ ]
                                  x f y  < -- >  f [ y ; x ]
               a     b      | ( w d) , w b
               f     a      | f ( a )
               a     f      |  f [ ; a ]
               f     g      |  f [ g ]
       5 !   works .
  -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
  Currying  |   3&+  A
          ( 1&take ) each A  | because only have fns ( which can act on fns
         |( / \ : compose )|
 J Syntax : Roger`s Table - too big .
 0  - one page of simply written code .
    ( a + b ) x % d   | then tokenized . integer index
    some into system sym table or  ID tables - safe pointers
    Next  . assigns number for  - ( phrases )
    Right most on Stack .  then calls fn to left .
  a [ i ]  b [ j ]   | brackets
     ( )
     [ ]
  { }  code  w rule  for formating  \ for execution  | block
closure in ST
  { 1 + w } each 2     |>| 3
        a b [ i ]   | same rule as  a b ( i )   | very similar to APL2 .
  ix is [ i ]  &  a ix  |  works
  _if  ( x = ) { `Zero }
  _if   < -- {   do take ( ~ take w ) drop 1 drop w } del
 Cory :  { }  not auto applied . must be explicit .
   Byte code interpreter implemented in J - quicker than Dyalog .
 Larry Breed  - hell of bright guy - auto representation & coercion .
   every atom  table - name valu pairs .   | 1r3  rational
    parent slot
 Dave Unger`s  language  SELF  .
 Abstraction is king .
  !10000  is integer . |  bits subclass of integer .|20:58|
     f o 2 3 4
     1 3 5 THRU  2 7 THRU  10 with .5  13 14
1 3 5 4 3 2 7 7.5 8 8.5 9 9.5 10 13 14

\/ \/ \/ Feedback \/ \/ \/

If you would like to be notified when this page is updated , enter your e-mail address here :
Comments ?
Or : Email : bob@cosy.com
IF you find this interesting , chk : CoSy/Home
CoSy/Home ; CoSy/Current