Re: About Euphoria, from a newcomer
- Posted by Jacques Guy <j.guy at TRL.TELSTRA.COM.AU> Feb 12, 1998
- 728 views
Ralf Nieuwenhuijsen wrote: > Euphoria does not cheat with a garbage collector [...] Oh yes, I quite realized that! [about learning Euphoria] > Ai, I never had a problem with it, but then again, I learned most > Euphoria by experience. Same here, and I am still learning. I was only making the point that many may be put off by the lack of an easy "entry" to Euphoria. Which is a pity. > Maybe using a specialized company for the documentation would help ? Well, I had been toying with the idea of writing one myself, but I am worried about the matter of copyright. It would be good to publish it with the public domain version of Euphoria on a diskette (or a CD), but where would that put me legally? BTW, I am quite good at writing, and I did teach programming in Simula for rank beginners when I was with the Australian National University, long ago. I still have the lecture notes, complete with the cartoons. > >No pointers? I don't believe it. I suspect that Euphoria is *all* > >pointers. > Pointers give some responsibility and power to the programmer. > It is mostly used in languages not capable of taking the responsibility > themselves. (C, Pascal, etc.) Exactly! Not that they are not capable, just that they were not implemented properly. Simula, for instance, takes responsibility for pointers, and it is quite similar to Pascal, being a superset of ALGOL 60. > >Arguments to functions and procedures can only be passed by value. That, > >to me, is the strangest feature of Euphoria. [...] > Ever programmed OOP ? > It would make it sound less weird. > Now, Euphoria has the same benefits of OOP without the need of the > abstract OOP model. Tsk, tsk, tsk... I started programming with objects in 1977, when I discovered Simula! No way eschewing objects: the whole I/O is object-oriented, and so is string-handling. Being a linguist, and using computers for language handling, I *had* to jump into OOP right from the beginning. > >I'll say, "all right, a file is a sequence too, so, logically: > > myfile = append(myfile,someStuff)" > Well, Robert, it is not a bad suggestion. No, please, don't take it up yet. It would likely confuse current users of Euphoria. Note that, if this suggestion was implemented (or something similar), there would be no need for procedures at all in Euphoria. Me, ignorant of computer science as I am, I just can't imagine the implications. > Opening a file as an object, where you can give a shape. (1D sequence, > 2D sequence or even a whole type definition) > I was thinking that I wanted the possibilitie of using File I/O on > sequences (the other way around), so that I could use some routines and > store their output in a sequence. (Or have them get their input from a > sequence) There is a computer language which does not distinguish between files and arrays: Comskee. It was designed in Germany for machine translation. I saw it at work in Saarbruecken University in the early 80's, where it was used in a machine translator translating from French into German. And a very impressive translator it was too. Comskee is a superset of ALGOL. It ran on a Siemens mainframe. I still have, somewhere in my mess of books, a Comskee manual. I remember that it took one of their students (who knew nothing of computer programming) one week to learn Comskee and write a program that parsed Latin verbs. Not bad! > Any1 got a more detailed suggestion or idea of a better file I/O > interface (to make up for the stupid MS-Dos like interface) ? Well, I don't, only general ideas. The screen, for instance, is two 2-dimensional arrays: one for the characters, one for their attributes. (A 3-dimensional array, if you prefer) A file, as handled with conventional I/O, is a one-dimensional array. But logically, it is n-dimensional. For instance, I wrote a dictionary maker, with each word with its frequency (just like the demo of a binary tree, but not using a binary tree). That is a 2-dimensional array of course. Logically, the file should be accessible like the array: fq=dic[n][FREQ] But where that leads, I don't know. (I really must find that book on Comskee) Enough rantings. My apologies.