Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!willett!ForthNet From: ForthNet@willett.UUCP (ForthNet articles from GEnie) Newsgroups: comp.lang.forth Subject: PUZZLES AND PROBLEMS Message-ID: <1429.UUL1.3#5129@willett.UUCP> Date: 30 Jul 90 02:29:29 GMT Organization: String, Scotch tape, and Paperclips. (in Pgh, PA) Lines: 65 Category 3, Topic 35 Message 129 Sun Jul 29, 1990 W.BADEN1 [Wil] at 17:21 PDT Replying to Doug replying to me, > In <1385.UUL1.3#5129@willett.UUCP>, W.BADEN1 [Wil] writes: > > > Forth may still be appropriate for such applications because of > > environmental rather than linguistic reasons. Forth may be a good > > language to program applications using operations for these things > > defined in another language, e.g., assembler. The first point that I was trying to make is merely that your environment may restrict your choice of languages, e.g. 68HC11. The second point is that after an uncongenial procedure has been implemented in whatever it takes, Forth may be excellent to invoke that procedure. > > It is ironic that Forth's name was chosen to suggest it is a fourth > > generation language. The essence of 4GL's is that they indicate what to > > do, not how to do it. The essence of Forth is the explicit specification > > of how to do something. (You never heard or saw me state that Forth was a fourth generation language.) The distinction of "How to" versus "What to" is more commonly expressed as Procedural versus Non-procedural. All languages have elements of both. As Doug points out, > Any conventional computer language is at some point going to have to > say "how to do it". The purpose of subroutines is to package "What to" whatever the language. The level of a language is a measure of how much has already been piled up for you, or conversely how much you have to pile up to do what you want to do. In this ordering Forth clearly stands between Asm and C. > Forth is, as far as I can tell, the only language so flexible that > you don't actually write your application in Forth, but you use > Forth to write the language in which you write your application. All sufficiently powerful languages have this ability. This is the way applications are programmed in every language. What Forth shares with Lisp and APL is the ability to grow into your application. (Tell me, does SmallTalk have this too?) "Everthing should be programmed from the top down -- except the first time." As an application is built, every component should be checked. With conventional development this means that scaffolding must be rigged for each component. This scaffolding, which may become much larger than the final appplication, is thrown away. Forth's mode of development reduces and often eliminates scaffolding. > When you have the system "grown" to the point where the user can > type [a program invocation] and have it actually happen, the > Forth system has evolved into a "what" NOT a "how". Agreed. This is what applications are for. Procedamus in pace. ----- This message came from GEnie via willett through a semi-automated process. Report problems to: uunet!willett!dwp or willett!dwp@hobbes.cert.sei.cmu.edu