Thread View: comp.lang.apl
1 messages
1 total messages
Started by Warren Vogt
Tue, 19 Apr 1994 11:02
sluggish interpreters
Author: Warren Vogt
Date: Tue, 19 Apr 1994 11:02
Date: Tue, 19 Apr 1994 11:02
94 lines
7017 bytes
7017 bytes
The recent posts on this topic embolden me to reminisce on a non-APL experience Since the book "Computer Languages: A Guide for the Perplexed" by Naomi Baron (New York: Anchor Press/Doubleday, 1986) piqued my curiosity, I have made it my hobby to study many unrelated computer languages. Before that time I only knew Fortran and especially Basic, which I frankly like! In the course of the last seven years, I have been winding my way up a Tower of Babel of CS lingos. (And wasting a hell of a lot of time in the process!) Naturally, I use public domain versions. I don't complain about their performance, only about the lack of learning material, libraries, annotations. This results in so much time-loss that someone with a good income would actual- ly save money & time by buying a well-equipped professional version. But speaking of interpreters' slowness, I once had an appalling ex- perience with a Prolog interpreter. It has a reputation for extraordinary slow- ness, even among PD Prologs. I wonder if it is DELIBERATELY slowed down, so as to encourage you to buy an upscale registered version? I took a short typically recursive Prolog program out of Clocksin & Mellishes' text-book, and put it in. Well, it was optimized to be slow! Because between each successive iteration, when more developed results were output, the time interval was doubled! In min: 1, 2, 4, 8, 16, 32, 64 ... . Not exactly, but close to that. I quit after 45 '. The machine only had an 8086, but I would be surprised if other Prologs do bet- ter than 3X faster: still intolerably too slow for serious use. I fear the mar- ket will provide database products with crude "inference engines" but without all of Prolog's subtlety and and discrimination. I think Prolog is the best language for expert systems and (soft) "AI" that exists. I don't blame the Japanese for preferring it to Lisp in their "5th Generation" project. (How come we never hear about it anymore?) I recently be- gan to study Lisp, and I can't help associating it with an obsolete model of AI to wit, the "production-system" one. As a beginner, I find both it and Prolog difficult; not for the same reasons, though list-processing is (for me) the hardest part of Prolog. Lisp is good for symbolic math, I suppose, (witness Re- duce & Macsyma) but "AutoLisp" is the only reason I can think of that people still use it with eagerness. I have no idea about its speed performance, com- pared to Prolog, Basic, etc. Nor do I dislike it on purely "aesthetic" grounds. I have also dabbled in Forth. Despite its interpreted appearance, it is supposed to be very fast because of its "threaded code" architecture. I have done no speed tests to verify this, and admit that I still find Forth difficult again for reasons unique to itself. I fear that it will remain a cult language because "words" and implementations will never be adequately standardized. Its merits were more visible at an earlier time, when memory was scarce and expen- sive, CRT's simple, and CPU's slow. I'm sure Forth fans'll disagree vehemently. They are even more convinced they have the all-time perfect language than we APL-ers are! I have dipped into Smalltalk. I can't praise it too highly, and I can easily imagine using it for both AI (expert systems) and for mathematical man- ipulation, where variety of techniques rather than quantity of data is desired: For example, solving several different "classes" of non-simultaneous differen- tial equations. Compared to the others, it is refreshingly easy, at least in the version described by Tim Budd's book "Little Smalltalk". It will be a pity if its slowness or fragility (?) make it unused for serious applications. I spent a few years studying everything I could about the VM/CMS opera- ting system, REXX, Xedit and 370 assembler. It took me 3X longer than it ought to have because a complete set of the indispensable manuals, like the System Programmer's Guide, are missing from the public area, and nobody offers me sage advice. This was of course a rash waste of time, because no one will hire me to be a CMS system programmer, irrespective of my ability. I have looked at SNOBOL4, but not ICON yet. I find SNOBOL amusing, but can't imagine how it (or ICON for that matter) will survive things like Word- Perfect macros. I've spent only a little time on the two, so no regrets. APL is perhaps the most recent interpreter to bewitch me, after I put aside my initial prejudices towards it. I used to look askance at a language that needed so many funny characters and a special terminal. After all, don't Basic and C accomplish whatever thing with the alphabet and common punctuation characters? [sic] I came to APL in late '92, not long after I began to study calculus in a serious way. (I am completely self-taught in whatever math & CS I know.) APL struck me as a sensible choice, because I feel it is the best lang- uage one can use to accompany the study of pure mathematics. Since I am still a beginner, more or less, and see no need to use large quantities of data even in linear algebra studies, I am satisfied with it, despite mention of its apparent shortcomings on this list. It doesn't smack of the dilettante's past-time as the others do, because I associate it with the useful occupation of learning real mathematics, not just playing around with "I/O routines & data structures" I therefore continue to believe in APL and hope it surmounts the snags debated. I've barely started to learn J, but -- surprise! -- I prefer glyphs to marks. I've browsed books on C. For me the ways of defining, naming, referring to structs, unions and the members thereof is the hardest part about it. But knowing how to link C code and use libraries with sagacity also daunts me. I will not learn C until I have a good need for it. My God! what languages does he NOT like? you are probably asking. Well, I have no use for COBOL and PL/1; I will never learn them, I hope. I want to avoid ADA at all costs. I am not overly fond of Turing. And in spite of my un- feigned admiration of Nicklaus Wirth's indispensable contributions, I take less pleasure in Pascal than I do in some of the earlier named languages, even Lisp. I might like Modula-2 and Oberon more than Pascal, but I'm not betting on it. I find them rather dull and spare, despite my theoretical approval of them. Ironically, the languages I spend the most time on are difficult for me: Prolog Well-known spreadsheets, database systems, CASE stuff interests me not. Book-keeper & functionary stuff. Maybe if I had tried them out on a big machine with Windows, I wouldn't be so contemptuous of them. I do know how to do Intel 8086 assembly programming. But I wish the PC had been designed to take the Motorola 68000 instead. Now where were we? Oh yes, we were talking about the liabilities of u- sing interpreters when they run slower than machine code from compilers... :-)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads