home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sys / next / misc / 19358 < prev    next >
Encoding:
Text File  |  1992-09-08  |  16.6 KB  |  509 lines

  1. Xref: sparky comp.sys.next.misc:19358 comp.sys.next.programmer:6026
  2. Path: sparky!uunet!gatech!purdue!mentor.cc.purdue.edu!sage.cc.purdue.edu!asd
  3. From: asd@sage.cc.purdue.edu (Kareth)
  4. Newsgroups: comp.sys.next.misc,comp.sys.next.programmer
  5. Subject: NEW language list, with 100% more than the FAQ sheet!
  6. Message-ID: <Bu72J2.FCz@mentor.cc.purdue.edu>
  7. Date: 7 Sep 92 06:11:25 GMT
  8. Sender: news@mentor.cc.purdue.edu (USENET News)
  9. Organization: Purdue University
  10. Lines: 497
  11.  
  12. This is basically a summary of my query for languages that people were
  13. using on their NeXTs.  After a week of searching for and trying to
  14. compile tons of different things, I'm done (at least to my
  15. satisfaction).
  16.  
  17. Anyways, this is a new language list, a more complete one, of
  18. languages available for the NeXT.  Hopefully, if I don't have to
  19. rewrite this much from mistakes, I'll try and get it to be used as the
  20. new FAQ sheet for languages.
  21.  
  22. A number of these I can not really fully check out because I have no
  23. working knowledge of the language.  I just tested those to see if they
  24. compiled, and didn't immediately crash upon invocation.  So, all the
  25. programs in this list do, apparently, work., or at least load.  More
  26. testing is need to confirm those that I couldn't test out.
  27.  
  28. Also everything in this list is Public Domain, unless otherwise
  29. denoted by company names that you have to get it from (ADA, CraftMan,
  30. Eiffel, etc).
  31.  
  32. Several of languages explictily support NeXTs.  Denoted by "NeXT support".
  33.  
  34. Some of  the descriptions have been stolen from FAQ.languages.
  35.  
  36. Disclaimer: This list is NOT intended to be a full list of what
  37. languages work or are supported for the NeXT.  These are just the
  38. languages I could find, or was told about.  I would love to find out
  39. if the ones that I said I couldn't test actually do or don't work on
  40. the NeXT.  And I wouldn't mind finding out about other languages that
  41. folks might be using, that I don't have listed, like Modula, PL/I,
  42. COBOL, etc.  I have tried to be as accurate as possible with the
  43. information, and supply hosts for where the source could be found, and
  44. directories where they could be found, however I can't guarantee that
  45. I've not made mistakes, ommissions, or supplied just downright bogus
  46. information.
  47.  
  48. Here's the brief summary of what's include:
  49.  
  50. Ada, APL/J, BASIC, C++, CraftMan, Eiffel & Sather, Forth, FORTRAN, FP,
  51. gawk, ICON, Intercal, Lisps (ACL, AKCL, Elk, Scheme, Xlisp), Logo,
  52. ML(CAML, SML), Pascal, PCN, Perl, Prolog, and TCL.
  53.  
  54. also for those who consider these as languages:
  55.  
  56. SHELLS - ksh, bash, zsh, rc
  57. and also gawk and perl
  58.  
  59. Some that *maybe* should be included, but I did not are:  C, Objective
  60. C, PostScript, and Mathematica.  This list is more of "What else can
  61. I work with on a NeXT?" list, accounting for the first 3, and
  62. Mathematica I consider more of a software package, than a language.
  63.  
  64. Anyways, here it is!
  65.  
  66.  
  67. **** ADA
  68.  
  69. At NeXT Fed-Expo Meridian Software demonstrated a NeXT Ada compiler.
  70.  
  71.     Meridian Software
  72.     Voice: (800)221-2522
  73.     FAX: (714)727-3583
  74.  
  75.  
  76. **** APL / J    - NeXT support
  77.  
  78. There is no strict APL compiler/interpreter that I could find.  J
  79. however is the successor to APL, and sources for that CAN be found.
  80. Current version is 5.1.
  81.  
  82. obtained from watserv1.waterloo.edu
  83. languages/apl/j
  84.  
  85.  
  86. **** BASIC
  87.  
  88. This basic is called Chipmunk Basic.  It's fairly lame, interpreted,
  89. and looks somewhat like Applesoft BASIC.  It is included in the
  90. p2c-1.20 distribution.  It compiles up and seems to work fairly well.
  91. I've not tested it out except for a few basic functions.  Give it a
  92. whirl if you need to have BASIC.  Oh, you do need to compile p2c in
  93. order to compile the basic program.  Read the information about p2c
  94. below.
  95.  
  96. p2c, David Gillespie's Pascal to C translator, can be
  97. obtained from csvax.cs.caltech.edu in
  98. pub/p2c-1.20.tar.Z
  99.  
  100.  
  101. **** C++
  102.  
  103. C++ shipped with the NeXT 2.0 is actually: NeXT Release 2.0 (v31.1) --
  104. GNU version 1.36.4 (based on GCC 1.36) libg++ is not provided, you
  105. need to compile it (GNU software is available from prep.ai.mit.edu).
  106.  
  107. Two things to note about the C++ on NeXT.  Any C include files have to
  108. be specified as below:
  109.  
  110.     extern "C"
  111.     {
  112.     #include <libc.h>
  113.     #include <stdio.h>
  114.     #include <stdlib.h>
  115.     #include <math.h>
  116.     }
  117.  
  118. This tells that the code is C, so you won't have problems with the
  119. standard libraries thinking your program is Objective C.
  120.  
  121. Also the /usr/include/stdio.h in line 75 has a variable "new" that
  122. conflicts with a g++ keyword. You can redefine it using
  123.  
  124.     #define new __new__
  125.     #include "stdio.h"
  126.     #undef new
  127.  
  128. After the above two fixes, g++ programs that do not use the g++ class
  129. library (and therefore do not need libg++ to be available) work.
  130.  
  131.  
  132. **** CRAFTMAN
  133.  
  134. CraftMan, from what I gather, is a scripting language that allows one
  135. to use lots of graphical interface objects.  It probably could be
  136. called the HyperCard for NeXT.  There is a demo of it sitting on
  137. sonata.cc.purdue.edu I do believe.
  138.  
  139. obtained from:
  140.     Xanthus International AB
  141.     Kungstensgatan 14
  142.     S-113 57 Stockholm, Sweden
  143.     46-8-612-89-95
  144. or possibly from NeXTconnection by now
  145.  
  146.  
  147. **** EIFFEL & SATHER    - NeXT support
  148.  
  149. Of the various response I got back about my questions on what
  150. programming languages folks were using, Eiffel by far was the #1
  151. mentioned.  Eiffel is supposedly a fairly powerful Object Oriented
  152. language, which is, as one person put it, "the best commercially
  153. available OOP language bar none"!  Similar claims seem to be popping
  154. up about their next (not NeXT) revision of the software and it's
  155. development environment.  Various claims about it being as good as
  156. NeXT's Interface Builder.
  157.  
  158. A port of the Eiffel language and development environment is available
  159. for the NeXT.  A new version of Eiffel is in the works and is new
  160. version sounds like it's going to be extremely nice.  The company is:
  161.  
  162.     Interactive Software Engineering, Inc.
  163.     Voice: (805)685-1006
  164.     FAX: (805)685-6869
  165.     eiffel@eiffel.com
  166.  
  167. The port is for Eiffel version 2.3 and includes their standard class
  168. libraries as well as some additional NeXT-specific classes and
  169. facilities for integration with the Interface Builder.  This may not
  170. be the latest version out though.
  171.  
  172. A free Eiffel-like language called Sather is also available.  Sather
  173. is a subset of Eiffel, eliminating some of the complexity, and
  174. simplifing it.  Sather code is supposed to be very quick, and has NeXT
  175. support.
  176.  
  177. Sather is obtained from icsi-ftp.berkeley.edu 
  178.  
  179.  
  180. **** FORTH    - unable to test
  181.  
  182. A PD-implementation of a figFORTH interpreter is available.  It
  183. compiles, and seems to run.  It claims to be mostly true to the
  184. implementation of figFORTH.  As I don't know the language, I was
  185. unable to test it out.
  186.  
  187. obtained from wuarchive.wustl.edu
  188. mirrors2/unix-c/languages/c-forth.tar-z
  189.  
  190.  
  191. **** FORTRAN
  192.  
  193. There is a Fortran to C translator called f2c available.  There is a
  194. current version of it avaible on the archives.
  195.  
  196. obtained from sonata.cc.purdue.edu
  197.  
  198. There are also commercially available Fortrans.  I've heard not so
  199. great comments about these programs, their speed, and their high
  200. costs.
  201.  
  202.     Absoft (313) 853-0095
  203.     Diab Data (415) 571-1700
  204.     
  205.  
  206. **** FP        - unable to test
  207.  
  208. FP is a Functional Programming language.  There were actually two
  209. programs that I found, both which compiled.  One was an interpreter,
  210. and the other is a FP->C converter.  The FP interpreter did not seem
  211. to function, although I might have gone about it all wrong.  The FPC
  212. converter however did generate C code that I could compile.  However
  213. not understanding what any of the examples did, I had no clue as how
  214. to test the resultant binaries.
  215.  
  216. obtained from any Usenet archive
  217. comp.sources.unix/Volume20: fpc translates FP programs to C.
  218. comp.sources.unix/volume13: FP by Andy Valencia
  219.  
  220.  
  221. **** GAWK
  222.  
  223. Gawk, as with all FSF GNU software is available in source form from
  224. prep.ai.mit.edu
  225.  
  226. Gawk is the Gnu version of Awk.  Like most of the other GNU programs
  227. Gawk has more features than does awk.  Indeed, the NeXT awk is a very
  228. old version of awk with many missing features of the newer versions.
  229. Further unlike the wretched man page for awk that comes with the Next,
  230. Gawk comes with a 140 page manual/tutorial.
  231.  
  232. Gawk is a text processing language.  In this respect it is similar to
  233. sed.  However Gawk adds to sed conditional execution (if) subroutines,
  234. and the ability to execute a block of instructions before and after
  235. the file itself is processed.
  236.  
  237. gawk is not the only public-code awk.  Mawk version 1.1, published
  238. through comp.sources.reviewed in February, 1992, by Mike Brennan
  239. <brennan@boeing.com>, should be mentioned as an alternative.
  240.  
  241. References for Gawk/awk:
  242.     Sed & Awk, Dale Dougherty,  
  243.     O'Reilly & Associates
  244.  
  245.     The Awk Programming Language
  246.     Alfred V. Aho, Brian W. Kernighan, &
  247.     Peter J. Weinberger
  248.     Addison-Wesley Publishing Co.
  249.     ISBN 0-201-07981-X
  250.  
  251.  
  252. **** ICON    
  253.  
  254. ICON is special purpose language, resembling PASCAL, which special
  255. string scanning features.  The only things I've seen it used for were
  256. indexing a large file and providing a lookup for the file, sorta like
  257. a command line Librarian.  Although it looks a lot like PASCAL, it is
  258. not PASCAL.
  259.  
  260. obtained from cs.arizona.edu
  261.  
  262.  
  263. **** INTERCAL
  264.  
  265. Probably THE single grossest language invented, other than working in
  266. binary!  The only thing I can think of using Intercal for is making
  267. really disgusting source code for very simple programs.  I only
  268. include this because I know someone out there told me he was using it.
  269.  
  270. obtained from ftp.white.toronto.edu
  271.  
  272.  
  273. **** LISPs    - some NeXT support
  274.  
  275. There are many forms of LISPs available, either of the Scheme (Elk,
  276. Scheme) variety or the Common Lisp (akcl/kcl/pcl, ACL) variety.
  277.  
  278. AKCL/KCL/PCL are all sorta one and the same, at least the version
  279. available for the NeXT.  A version of akcl-619 is available for the
  280. NeXTs.  It is basically kcl (Kyoto Common Lisp), with the akcl
  281. extensions, plus the CLOS (Common Lisp Object System) all patched up
  282. into one binary.
  283.  
  284. obtained from sonata.cc.purdue.edu
  285. pub/next/submissions/akcl-615-pcl-image.tar.Z
  286. pub/next/2.0-release/AKCL-1-599* (this version I don't know
  287.                   if it has the CLOS stuff included)
  288.  
  289. ACL is Franz Inc's Allegro Common Lisp, which used to be bundled with
  290. NeXTs.  ACL obtained from:
  291.     Franz Inc.
  292.     1995 University Avenue
  293.     Berkeley, CA 94704
  294.     Voice: (510) 548-3600,
  295.     FAX: (510) 548-8252
  296.     email info@franz.com. 
  297.  
  298. ELK is a Scheme interpreter with NeXT support.  I don' t know if it's
  299. a subset, or a superset of the actual Scheme.
  300.  
  301. obtained from export.lcs.mit.edu
  302. contrib/elk-1.5a.tar.Z
  303.  
  304. The MIT Scheme with NeXT support is also available, pre-compiled and
  305. ready to run.
  306.  
  307. obtained from altdorf.ai.mit.edu
  308. archive/scheme-7.1
  309.  
  310. There is also a Scheme->C converter which works.
  311.  
  312. schemetoc obtained from sonata.cc.purdue.edu
  313.  
  314. There is also Xlisp.  I don't know if it's a Common or a Scheme type
  315. lisp.  Some changes are needed to make it work, according to the last
  316. FAQ notes.
  317.  
  318. obtained from bikini.cis.ufl.edu
  319.  
  320. changes:
  321.     in unixstuf.c:
  322.         #define BSD
  323.     in function init_tty:
  324.         declare extern char xltoplevel()
  325.     in function read_keybd:
  326.         change     char buf[1]   to   char buf[100]
  327.         change     sizeof(buf)   to   sizeof(char)
  328.  
  329.  
  330. **** LOGO    - NeXT support
  331.  
  332. There is a NeXT version of Logo available currently.  It is based on
  333. the a UNIX Logo that is out there.  Read the instructions.  Installing
  334. it is a little tricky since there are various libraries that it can
  335. only find in certain directories, or via what it reads from defaults
  336. database.  It can be recompiled so it will look in certain places for
  337. the libraries.  Look in logo.h for three #defines: LIBLOGO, DOCLOGO,
  338. HELPFILE.  Changing these will allow you to setup a app wrapper, and
  339. put all the files in it.
  340.  
  341. obtained from cs.orst.edu
  342.  
  343.  
  344. **** ML        - NeXT support
  345.  
  346. ML stands for MetaLanguage, and from what little I was taught about it
  347. in a class long time ago, it's object oriented in at least the sense
  348. that it has operator overloading.  Beyond that I don't know much about
  349. it.  There are two versions, CAML-light which is a subset of CAML, and
  350. Standard ML of New Jersey which run on the NeXT.
  351.  
  352. CAML-light obtained from sonata.cc.purdue.edu, or cs.orst.edu
  353.  
  354. SML/NJ obtained from research.att.com or princeton.edu
  355.  
  356.  
  357. **** PASCAL
  358.  
  359. p2c is David Gillespie's Pascal to C translator.  It translates many
  360. dialects of Pascal including Turbo, VAX, Sun/Berkeley.
  361.  
  362. obtained from csvax.cs.caltech.edu
  363. pub/p2c-1.20.tar.Z.
  364.  
  365. But there is a very serious problem in that %g and %lg are used to
  366. read reals in the translated code, and these formats are not supported
  367. by NeXT in scanf.
  368.  
  369. Gillespie maintains that this is a bug in NeXT's compiler.  A fix is
  370. to make the following change in funcs.c:
  371.  
  372. [Old code]
  373.     case TK_REAL:
  374.     if (var->val.type == tp_longreal)
  375.         ex = makeexpr_string("%lg");
  376.     else
  377.         ex = makeexpr_string("%g");
  378.     break;
  379.  
  380. [New code]
  381.     case TK_REAL:
  382.     if (var->val.type == tp_longreal)
  383.         ex = makeexpr_string("%lf");
  384.     else
  385.         ex = makeexpr_string("%f");
  386.      break;
  387.    
  388. Here is a very disturbing example.  %lg gives garbage, and %lf even
  389. gives garbage when it follows %lg:
  390.  
  391.     ariel% more test.c
  392.     main()
  393.     {
  394.     double x, y, z;
  395.     scanf("%lf%lg%lf%*[^\n]", &x, &y, &z);
  396.     getchar();
  397.     printf("% .5E  % .5E  % .5E\n", x, y, z);
  398.     }
  399.  
  400.     ariel% cc test.c
  401.     ariel% a.out
  402.     3.14 3.14 3.14
  403.     3.14000E+00   6.36599E-314   1.40000E-01
  404.     ariel% 
  405.  
  406. [this seems to be a good task for a compiler wizard to look at...
  407. -pasc]
  408.  
  409.  
  410. **** PCN
  411.  
  412. PCN (Program Composition Notation) is available on the NeXT.  PCN is a
  413. portable parallel programming language that is being developed here at
  414. Argonne and at Caltech.  It runs on a wide variety of workstations
  415. (including NeXTs), networks of workstations (i.e., use your network of
  416. workstations as a parallel computer), shared memory multiprocessors
  417. (i.e., Sequent Symmetry), and distributed memory multiprocessors
  418. (i.e., Intel iPSC/860 and Touchstone Delta).  It has been, (and still
  419. is being) used (in conjunction with C and Fortran) to develop a number
  420. of large scientific applications, including climate modelling,
  421. computational fluid dynamics, computational chemistry, computational
  422. biology, etc.
  423.  
  424. obtained from info.mcs.anl.gov
  425. pub/pcn
  426.  
  427.  
  428. **** PERL
  429.  
  430. Take most of the features of C, csh, awk, and add a sprinking from
  431. sed, and you get Perl.
  432.  
  433. Practical Extraction & Reporting Language.  Perl is very much of a
  434. kitchen sink language, in that it has almost all the features of
  435. everything.  This results in it being easy to write programs in perl
  436. (because all your favorite constructs are there) but difficult to read
  437. perl. (Because other people have used their favorite constructs, not
  438. yours)
  439.  
  440. Perl's strength is in scripting.  Anything that would take more than
  441. 20 lines in a csh script is a candidate.  Anything that isn't a
  442. straight pass through, chew on each line, program for awk is a
  443. candidate.
  444.  
  445. Perl is available from:
  446.     jpl-devvax.jpl.nasa.gov        128.148.1.143
  447.     tut.cis.ohio-state.edu        128.146.8.60
  448.     uunet.uu.net                192.48.96.2
  449.  
  450. While Perl does come with a 70 page man-book, an easier way to learn
  451. the language is from "Programming Perl" Larry Wall & Randal Schwartz.
  452.     O'Reilly & Associates
  453.     632 Petaluma Ave
  454.     Sebastopol CA 95472
  455.     Voice: 800-338-6887
  456.     Voice: (707) 829-0515
  457.     uunet!ora!nuts.
  458.     
  459.  
  460. **** PROLOG    - NeXT support
  461.  
  462. There are a number of Prolog's out there.  A Prolog that's supposed to
  463. work with Elk (but didn't), Stony Brook Prolog, C-Prolog (not PD), and
  464. a few others.  There is a file on the archives, c-prolog.Z (?), that
  465. lists changes that can be made to various Prolog's to get them to
  466. work, but I think that document was made in the 1.0 days, and it sure
  467. didn't work for me.  There was only one that I found that did indeed
  468. work, and that was BinProlog.
  469.  
  470. obtained from clement.info.umoncton.ca
  471.  
  472.  
  473. **** SHELLS
  474.  
  475. There are a number of shells out there in the world: Bourne shell,
  476. csh, tcsh, Korn shell, bash (the GNU shell), zsh (a csh, sh, ksh
  477. combo), and rc (a ATT plan 9 shell implementation).  Bourne sh, and
  478. csh of course come with the NeXT.  Tcsh, bash, zsh, and rc will work
  479. on the NeXT.  I have them all except tcsh currently.  All of these
  480. shells can be found ither on sonata.cc.purdue.edu, or on various
  481. archives.  (sorry, but just finding everything else has been a bit
  482. much for one just starting his last semester of school)
  483.  
  484. Korn Shell, which is seeming to becoming the rising star among shells
  485. (I've seen quite a number of KSH books popping up as *required* course
  486. reading for classes here), is unfortunately, NOT PD, coming from ATT
  487. and costing a pretty penny.  There *is* a PD version of KSH floating
  488. around on the archives.  I have never managed to get it to compile on
  489. my NeXT however.
  490.  
  491. The NeXT version of csh does have emacs line editing features similar
  492. to what ksh has though.  To use those features, just:
  493.  
  494.     set editmode = emacs
  495.  
  496.  
  497. **** TCL
  498.  
  499. TCL is an embeddable tool command language.  It's pretty slick, but
  500. I've not worked with it much.  To find out more (like current version,
  501. and where it's at), contact:
  502.  
  503.     John Ousterhout (ouster@sprite.berkeley.edu)
  504.  
  505. ----------
  506.  
  507. That's it.  I hope this helps anybody who might have been looking for
  508. some of these
  509.