Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: Forth for education Date: Fri, 20 Sep 2013 17:09:20 -0400 Organization: Aioe.org NNTP Server Lines: 81 Message-ID: References: <0d34c96e-d56b-4d85-85f3-7379a3a1eb72@googlegroups.com> <5235eb3d.280545989@news.demon.co.uk> NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.forth:25855 On Thu, 19 Sep 2013 00:12:52 -0400, wrote: > On Wednesday, September 18, 2013 2:08:00 PM UTC-7, Gerry wrote: >> On 18/09/2013 14:41, Rod Pemberton wrote: ... >> > Forth is cryptic, Forth has no syntax. >> >> Nonsense. Of course Forth has some syntax, if there were no syntax how >> could a Forth interpreter make any sense of a Forth program. > > The smallest aspect of Forth that can be understood (an "atom" of Forth) > is the word, which is blank-delimited. Each word does one thing (usually > something simple enough to be described in a single English sentence), > and there are a finite number of words in the dictionary, so Forth is > understandable. > So, you cite a known issue in Forth, but decide to rant about C instead? Ok, now you're deflecting too. > In C, we have statements. The parts of the statement (such as the * > token) are not understandable outside of the context of the statement. > The smallest aspect of C that can be understood (an "atom" of C) is the > statement, but there are an infinite number of possible statements, ... > [...] so C is not understandable. lol. C can be made unintelligible, but that usually via abuse of the C preprocessor which isn't formally standardized anyway. It allows you to perform almost any text transformation that you'd ever desire. Sometimes C also becomes cryptic via layers upon layers of code which obfuscate what is being done. > People can familiarize themselves with C, but they can't really > understand it. Please... Then, how have I been programming in it since about '92 after reading a couple of books? Then, how have I implemented a number of simple compilers for it? Then, how is it that I understand what assembly is going to be produced? Then, how is it that I can reduce ANSI or C99 to K&R C correctly? Then, how is it I know what platforms the language can be implemented on given specifics of the architecture? etc. > In Forth, if you see a word that you don't know about, you just > look it up in the ANS-Forth document. What if it's not there? Most Forth's aren't ANS yet... AIR, most are Forth-83. So, you'll be searching for a while. > If it isn't there, then you look it up in the source-code. I don't recall a requirement that a Forth word be provided as source. E.g., code words might have source or might be disassemble-able, but also might not have source available. > If you don't know about the words that it is defined in terms of, then > you repeat the process with them. By comparison, > in C you have to know quite a lot about C compilation to figure > out what a statement does That's not true. The process is the same for much of C. You just aren't familiar with how C converts high level C to low level. > unfortunately, it is not really possible to have a C compiler in > your head, because they are quite complicated. That depends on the programmer. C doesn't have to be complicated even for complicated tasks. Some programmers do make a mess though, just like in Forth... Rod Pemberton