I will be presenting 4th.CoSy at Ray Cannon's
APL Moot in Surrey England the weekend of August 18
The main focus of this note is to describe progress on the creation of 4th.CoSy . I will be presenting my work so far at the APL "Moot" in Surrey England the weekend of August 18 . So those of you not interested in the teky stuff just skip to Liberty . I will be spending a couple of days in NYC on the way out and Chicago and the farm in Illinois on the way back .
4th.CoSy is melding the most powerful languages at the two ends of the spectrum from machine to man . At the hardware end 4th.CoSy is built in Ron Aaron's new , but rooted in tradition , Reva FORTH . On the human end , is the winnowed product of my decades of creating and living in APL based environments . In a real sense , 4th.CoSy is a new and powerful generation of computing language .
Software creation is among the "everything" the web has changed . Open source code has won major market share for all web utilities . I , for instance , along with millions , use Mozilla browser and email ; all my hosted websites run on Linux ; they use facilities like PHPbb or PunBB bulletin boards , PHPlist mail manager , all these running in MySQL data base . Pov-Ray spectacularly renders the images of my glass tables . These are all open freeware programs . Reva itself is build using a free assembler , FASM .
In language development particularly , a small group of brilliant programmers literally around the globe can and often does outperform what is possible in a proprietary company . My own path from a well regarded proprietary FORTH to the much more nimble Reva is a case in point . With open code and global support even by a small ( but brilliant ) community , use of new and powerful language can be a cost effective but safe business decision .
APL and FORTH are both language families which have identifiable fundamental philosophical goals . APL's ultimate goal is to provide the most powerful succinct vocabulary for expressing finite algorithms . It's roots are in the notation of matrix algebra and applied mathematics . FORTH's goal is to provide the minimal extensible language , ie , a minimal dictionary which provides a vocabulary capable of adding new definitions to itself . That minimality extends to the syntax which is simply to execute the definition of each word as it is encountered .
In both languages the act of programming is the act of constructing vocabularies to deal with the subject of interest . Thus constructing APL in FORTH consists first of creating the many words encapsulating the array abstractions of APL . Since both languages are interactive , that means making an environment with much of the power of APL available in the FORTH static memory milieu . Thus 4th.CoSy provides first of all a sort of an "APL construction set" which provides a platform for implementing and testing various ideas one may have about syntax and vocabulary .
FORTH is perhaps an even more under appreciated language than APL . Ken Iverson the creator of APL received the ACM Turing Award , computing's Nobel , in 1979 ; it is unconscionable that Charles Moore , the creator of FORTH has yet to receive his . I tend to categorize programming languages under 4 archetypes , in approximate historical order : ALGOL , LISP , APL , FORTH . Almost all common languages from COBOL to C to Java fall under the ALGOL category .
There are a number of original and unique aspects of FORTH :
Reva , which which has been simultaneously developed to run on both Windows and Linux , has implemented these concepts in some very subtle and powerful ways with ideas from the RetroForth community . Because of the varying interests of members of the Reva community , it has quickly gained vocabularies to handle such things as TCP/IP sockets and GUI and Graphics interfaces . The guys that are real assembly language pros have the annoying ( when uncommented ) tendency to define words directly appending the hex bytes in their definitions rather than invoking the assembler . That's how direct the relationship with the hardware is .
- As mentioned above , FORTH has the simplest possible syntax . any non-blank string of characters separated by a blank is a valid name . Interpretation consists of starting at the beginning of a line , parsing up to the first space and looking up the word in the dictionary of existing words .
- FORTH is a stack based language . LIFO "last in first out" stacks are fundamental in any modern computer and language design . FORTH uses 2 stacks . When a word B is encountered in the execution of the definition of a word A , word A is pushed on a return stack so when execution of word B is completed , it can resume execution of word A . Data is passed from word to word by pushing it on a data stack where it is found by the next word being executed . The purity of this structure is starting to become recognized as the exemplar of concatinative languages .
- More than any other language , FORTH recognizes that languages are not simply a horizon of immutable definitions . Rather , words are built upon previously ( some simultaneously ) defined words . The existence of the higher level definitions does not obviate the potential utility of the component concepts . For instance , it is very common to have a word , for instance , create , which parses the next word in the input and makes a new entry in the dictionary for it . It's definition will be essentially parsews (create) where parsews parses the next word and returns it's address and length , and (create) is the same as create but expects the address and length of a character string .
- Compilation in FORTH , the process of adding words to the dictionary is very sophisticated and subtle . I won't go into it further , but suffice it to say you have total control over what happens while a word is being defined versus when it is executed in the course of interpretation . This provides great power but also potential "gotcha"s .
I'll say less about APL because I've written much more about it elsewhere , and The APLers I'm going to be "moot"ing with already are experts in it . The power of APLs lie mainly in a compact vocabulary of sophisticated verbs which act on very regular but extremely general data structures . The basic data structure is dynamic reference counted lists of lists with the leaves themselves generally being homogeneous byte , integer , or float lists . I intend to be the simplest , yet among the most powerful APLs . I am implementing a number of concepts from Arthur Whitney's K but not his syntax which will basically be APL's infix ( "noun verb noun" , eg , 1 + 2 and "noun verb adverb noun" , eg , 5 drop each list ) but determined largely by the words themselves rather than being table driven . The flexibility of the interpretive FORTH environment makes experimentation on such matters feasible .
One innovation I've made which I find quite successful is modulo indexing which eliminates such notions as "scalar extension" - APLers know what I'm talking about .
There is much more to be said , but bottom line , if you can make it to Surrey the latter part of August , you'll be able to see an offspring of two of the great lines of computing language , and the ground work for the next generation executive note-computing environment .
The other work consuming my time has been the battle against the ever encroaching Nanny Police State . I have now written three columns on the "Logic of Liberty" for the Manhattan Libertarian's Serf City quarterly street publication which distributes about 15,000 hard copies in Manhattan as well as being archived on the web .
I have also written two op-eds for the local Teller County "Mountain Jackpot" street paper motivated by the extension of the drug war to nicotine here in Colorado . Their titles are "Criminalizing the Population" and simply "Slug 'em" .
You can find links to them on my new Liberty/Colorado page on CoSy . You will also see there a Welcome to Colofornia tee shirt designed from a Mountain Jackpot cover which is now for sale on the web site and at an increasing number of bars in the area .
I did get to the wet & chilly 2006 Pikes Peak Hill Climb , one of the few true road races in the world where there is nothing between the racers and the spectators other than common sense .