From Wikipedia [1 ], the free encyclopedia:
An extended version of PL/I, EPL, was the programming language for the implementation of Multics.
Also known as PL/1 (where the discussion on the topic also exists).
proc(cmdArgs, envBlk) options(main); dcl cmdArgs char(127) var, envBlk char(127); dcl (max, i, j) fixed bin, base_page_ptr ptr, 1 base_page based (base_page_ptr), 2 pad1 (32) fixed bin(15), 2 psp_seg fixed bin(15); dcl cmdLine_ptr ptr, cmdLine char(127) var based (cmdLine_ptr); dcl dateNow char(6), timeNow char(9); dcl junk_waffle fixed bin(7) static initial (20); dateNow = DATE(); timeNow = TIME(); put skip list (dateNow); put skip list (timeNow); put skip edit (substr(dateNow,3,2),'/',substr(dateNow,5,2),'/',substr(dateNow,1,2)) (a(2),a,a(2),a,a(2)); put skip edit (substr(timeNow,1,2),':',substr(timeNow,3,2),':',substr(timeNow,5,2),'.',substr(timeNow,7,3)) (a(2),a,a(2),a,a(2),a,a(3)); put skip list (''); unspec(cmdLine_ptr) = '0080'b4; put edit ('command line = ', cmdLine) (a); put skip list (''); unspec(base_page_ptr) = '0000'b4; put edit ('PSP segment = ', unspec(base_page.psp_seg),'h') (skip,a,b4(4),a); put skip list (''); i = length(cmdArgs); put edit ('cmdArgs = ', cmdArgs) (a); put skip list (''); put list ('env = ', envBlk); i = '12bc'b4; put edit ('i = ',unspec(i),'h') (skip,a,b4(4),a); return; /* just for aesthetics */ end; /* of main program */
LV Anyone know why this page was created? Generally someone adds a note giving us some context.
escargo - I'm especially mystified because they got the name of the language wrong (it's PL/I). There is work being done on a PL/I front end to the GNU C compiler; I understand that they are looking for language samples to compile. - RS Thirty years ago, I did some PL/I (or, rather, the "student" subset SL/I) on an IBM 1130... but is PL/I any more than a museum piece today? Long time ago, it was praised as fusion of Fortran and Algol, with some COBOLity thrown in :^) KPV PL/I was the first real language I learned twenty five years ago. Don't remember much of the language except that I remember that C seemed trivial afterwards.
escargo I was an operator for an 1130 more than 30 years ago. I always had a fondness for the card reader/punch. (Makes me wonder if there are any 1130 simulators out there somewhere.) - RS: see http://ibm1130.org/sim
LV Well, I know at least one company which has production code written in PL/I... several hundred thousand lines of code, as a matter of fact. I don't know about other sites.
VK FWIW I consider this page is just off-topic here. No Tcl content, waste of reader's time. Just adding irrelevant information will not do anything good.
CLN I've never worked in PL/I (PL/1) myself but I remember someone once telling me about PL/C (PL/I for College students) which, he claimed, tried so hard to give a compiler warning and guess what the user meant that it would compile a Shakespearean sonnet. ;-)
VK so that PL/1 forgives much errors, could be interesting... but I still fail to understand why this discussion belong here. To continue off-topic, here my PL/1 chunk of correct code of interest:
if then then then=else; else else=then;
OTOH I must ask for wiki gnomes to delete this entire page! (I am too shy to do this myself)
TP VK's example shows off PL/I's purposeful lack of reserved words. Not every PL/I compiler supported this feature, but it was certainly present in the PL/I compilers that I used (IBM PL/I Optimizing compiler & PL/I C). Instead of reserved words, the compiler parsed purely by context. Other interesting features that I remember using:
I don't see the controversy of having a PL/I page on the Tcl wiki. Since it is now a GCC front-end language, someone could conceivably write a Tcl extension with PL/I. Note that the wiki already has pages for Cobol, Fortran, APL, Smalltalk, Haskell, Basic, and other languages that may not have a direct relationship with Tcl.
LV VK, alas, the gnomes can't delete the page - the best we can do is delete the contents. As for the controversy, if I knew why the original creator put the code on this page, I'd have some opinion about whether to delete the page or not ;-)
escargo - Does anybody see what's being done in the PL/I code to be able to write the equivalent in Tcl?
VK Chunk of code here mostly demostrates variables declarations; this program essentially does nothing: it outputs date and time, in raw format first, then in edited format ('put skip edit' line), then outputs program arguments. It contains only single comment /* just for aesthetics */ which is just not wise (actually this is a good example of bad commenting style). Sample code does not look good even for language demonstration purposes, looks like someone's test program: its named mytest, what do you want from it? It is not even PI calculation! I dislike it. Garbage!
PL/1 is happen to be my very first language, and its time is now long in the past. Interestingly, other languages from that time survived better. I meant LISP among interesting ones, which is very interesting from Tcl perspective. Even Fortran deserves more attention, as there are many scientific libraries working with it.
escargo - To me this says that something has displaced PL/I, something better. That leads to the question of, "Better how?" Comparing this to Lisp and Fortran, saying that PL/I's popularity did not endure so well, one may ask, "How can Tcl fare better than PL/I did?" Is there anything that we can do for Tcl to help it retain what popularity it has?