home *** CD-ROM | disk | FTP | other *** search
/ Nebula / nebula.bin / Documents / FAQ / NeXT / FAQ.languages < prev    next >
Text File  |  1993-01-27  |  8KB  |  296 lines

  1. NeXT-FAQ.languages:  Questions about programming languages on the NeXT
  2.  
  3.  
  4. *** Subject: L1. What Fortran compilers are available for the NeXT?
  5.  
  6. There is a fortran to c translator called f2c available
  7. via anonymous ftp from purdue in
  8. /pub/next/2.0-release/binaries specifically for the
  9. next. 
  10.  
  11. Absoft FORTRAN 77PObject Oriented FORTRAN compiler;
  12. fully compatible w/ NeXT's Interface Builder toolkit,
  13. allows programmers to add a  graphical i/f to any FORTRAN
  14. program. FxP a screen oriented source level debugger
  15. designed by and for FORTRAN programmers. IMSL FORTRAN
  16. Libraries 
  17.  
  18.     313-853-0050
  19.  
  20. Numerical Algorithms Group (NAG) FORTRAN 90 for
  21. NeXTPModern Fortram ully compliant with ISO/IEC
  22. 1539:1991 and ANSI X3.198-1991 standards. 
  23.  
  24.     (708) 971-2337
  25.  
  26. OASYS OASYS Native Compilers, OASYS Optimizing 680x0
  27. Cross Compliers, OASYS Optimizing 88000 Cross
  28. Compilers (C, C++, Fortran, Pascal available for
  29. each)PHighly optimized Fortran, Pascal.,  C and C++
  30. compilers and cross compilers. 
  31.  
  32.     617-862-2002.
  33.  
  34. Diab Data
  35.  
  36.     (415) 571-1700
  37.  
  38.  
  39. *** Subject: L2. What Lisps are there for the NeXT?
  40.  
  41. Scheme is available from altdorf.ai.mit.edu.  A quick
  42. tutorial on how to install it on the NeXTs is in the works. 
  43. Schematik is a NeXT front end app available on the archive
  44. servers.
  45.  
  46. There is also a commercial Scheme implementation that
  47. supposedly conforms to an IEEE Scheme standard. 
  48.  
  49.     Cadence Research Systems
  50.     812-333-9269
  51.  
  52. Xlisp is available from bikini.cis.ufl.edu.  Changes
  53. To make it work on the NeXT: 
  54.  
  55.     in unixstuf.c:
  56.         #define BSD
  57.     in function init_tty:
  58.         declare extern char xltoplevel()
  59.     in function read_keybd:
  60.         change     char buf[1]   to   char buf[100]
  61.         change     sizeof(buf)   to   sizeof(char)
  62.  
  63. AKCL is available from sonata.cc.purdue.edu.
  64.  
  65. Scheme->C Compiler is available from
  66. sonata.cc.purdue.edu and gatekeeper.dec.com.
  67.  
  68. ACL (allegro common lisp) used to be bundled with 1.0,
  69. now it is available directly from:
  70.  
  71.     Franz Inc.
  72.     1995 University Avenue
  73.     Berkeley, CA 94704
  74.     Voice: (510) 548-3600,
  75.     FAX: (510) 548-8252
  76.     email info@franz.com. 
  77.  
  78.  
  79. *** Subject: L3. What Pascal compilers are available for the NeXT?
  80.  
  81. uvapc/NeXT is an ISO standard Pascal compiler developed
  82. by the University of Virginia's Academic Computing
  83. Center and the Department of Computer Science. 
  84. uvapc/NeXT passes the ISO standard Pascal validation
  85. suite.  The compiler is written in C and has been ported to
  86. several other Unix platforms.  uvapc/NeXT can generate
  87. the necessary information so that the GNU source-level
  88. symbolic debugger, gdb, can be used (see Caveats below).
  89. It also supports obtaining gprof type profiles. 
  90.  
  91. Contact is:
  92.  
  93.     Mr. Jack Davidson
  94.     University of Virginia
  95.     Department of Computer Science, Thornton Hall
  96.     Charlottesville CA 22903
  97.     (804) 982-2209
  98.     (804) 982-2214 FAX
  99.     jwd@virginia.edu
  100.  
  101.  
  102. p2c, David Gillespie's Pascal to C translator, can be
  103. obtained from csvax.cs.caltech.edu in
  104. pub/p2c-1.20.tar.Z.
  105.  
  106. It translates many dialects of Pascal including Turbo,
  107. VAX, Sun/Berkeley.
  108.  
  109. But there is a very serious problem in that %g and %lg are
  110. used to read reals in the translated code, and these
  111. formats are not supported by NeXT in scanf.
  112.  
  113. Gillespie maintains that this is a bug in NeXT's
  114. compiler.  A fix is to make the following change in
  115. funcs.c:
  116.  
  117. [Old code]
  118.     
  119.     case TK_REAL:
  120.     if (var->val.type == tp_longreal)
  121.         ex = makeexpr_string("%lg");
  122.     else
  123.         ex = makeexpr_string("%g");
  124.     break;
  125.  
  126. [New code]
  127.     
  128.     case TK_REAL:
  129.     if (var->val.type == tp_longreal)
  130.         ex = makeexpr_string("%lf");
  131.     else
  132.         ex = makeexpr_string("%f");
  133.      break;
  134.    
  135. Here is a very disturbing example.  %lg gives garbage, and
  136. %lf even gives garbage when it follows %lg: 
  137.  
  138.     ariel% more test.c
  139.     main()
  140.     {
  141.     double x, y, z;
  142.     scanf("%lf%lg%lf%*[^\n]", &x, &y, &z);
  143.     getchar();
  144.     printf("% .5E  % .5E  % .5E\n", x, y, z);
  145.     }
  146.  
  147.     ariel% cc test.c
  148.     ariel% a.out
  149.     3.14 3.14 3.14
  150.     3.14000E+00   6.36599E-314   1.40000E-01
  151.     ariel% 
  152.  
  153. [this seems to be a good task for a compiler wizard to look
  154. at... -pasc] 
  155.  
  156.  
  157. *** Subject: L4. What should I know about c++ shipped with the NeXT?
  158.  
  159. cc++ shipped with the NeXT 2.0 is actually: NeXT Release
  160. 2.0 (v31.1) -- GNU version 1.36.4 (based on GCC 1.36)
  161. libg++ is not provided, you need to compile it (GNU
  162. software is available from prep.ai.mit.edu). 
  163.  
  164. Two things to note about the cc++ on NeXT.
  165.  
  166. Any C include files have to be specified as below:
  167.  
  168.     extern "C"
  169.     {
  170.     #include <libc.h>
  171.     #include <stdio.h>
  172.     #include <stdlib.h>
  173.     #include <math.h>
  174.     }
  175.  
  176. This tells that the code is C, so you won't have problems
  177. with the standard libraries thinking your program is
  178. Objective C.
  179.  
  180. Also the /usr/include/stdio.h in line 75 has a variable
  181. "new" that conflicts with a g++ keyword. You can redefine
  182. it using 
  183.  
  184.     #define new __new__
  185.     #include "stdio.h"
  186.     #undef new
  187.  
  188. After the above two fixes, g++ programs that do not  use the
  189. g++ class library (and therefore do not need  libg++ to be
  190. available) work. 
  191.  
  192.  
  193. *** Subject: L5. What Ada compilers are available for the NeXT?
  194.  
  195. Meridian Software offers a NeXT Ada compiler.  
  196.  
  197.     Meridian Software
  198.     Voice: (800)221-2522
  199.     FAX: (714)727-3583
  200.  
  201.  
  202. *** Subject: L6. Is Perl available for the NeXT?
  203.  
  204. Take most of the features of C, csh, awk, and add a
  205. sprinking from sed, and you get Perl.
  206.  
  207. Practical Extraction & Reporting Language.  Perl is very
  208. much of a kitchen sink language, in that it has almost all
  209. the features of everything.  This results in it being easy
  210. to write programs in perl (because all your favorite
  211. constructs are there) but difficult to read perl.
  212. (Because other people have used their favorite
  213. constructs, not yours)
  214.  
  215. Perl's strength is in scripting.  Anything that would
  216. take more than 20 lines in a csh script is a candidate. 
  217. Anything that isn't a straight pass through, chew on each
  218. line, program for awk is a candidate.
  219.  
  220. Current version: 4.035 
  221.  
  222. Perl is available from:
  223.  
  224.     jpl-devvax.jpl.nasa.gov        128.148.1.143
  225.     tut.cis.ohio-state.edu        128.146.8.60
  226.     uunet.uu.net                192.48.96.2
  227.  
  228. While Perl does come with a 70 page man-book, an easier way
  229. to learn the language is from "Programming Perl" Larry
  230. Wall & Randal Schwartz. 
  231.  
  232.     O'Reilly & Associates
  233.     632 Petaluma Ave
  234.     Sebastopol CA 95472
  235.     Voice: 800-338-6887
  236.     Voice: (707) 829-0515
  237.     uunet!ora!nuts.
  238.  
  239.  
  240. *** Subject: L7.  Where can I get gawk?
  241.  
  242. Gawk, as with all FSF GNU software is available in source
  243. form from prep.ai.mit.edu
  244.  
  245. Gawk is the Gnu version of Awk.  Like most of the other GNU
  246. programs Gawk has more features than does awk.  Further
  247. unlike the wretched man page for awk that comes with the
  248. Next, Gawk comes with a 140 page manual/tutorial.
  249.  
  250. Gawk is a text processing language.  In this respect it is
  251. similar to sed.  However Gawk adds to sed conditional
  252. execution (if) subroutines, and the ability to execute a
  253. block of instructions before and after the file itself is
  254. processed. 
  255.  
  256. gawk is not the only public-code awk.  Mawk version 1.1,
  257. published through comp.sources.reviewed in February,
  258. 1992, by Mike Brennan <brennan@boeing.com>, should be
  259. mentioned as an alternative.   
  260.  
  261. References for Gawk/awk:
  262.  
  263.     Sed & Awk, Dale Dougherty,
  264.     O'Reilly & Associates
  265.  
  266.     The Awk Programming Language
  267.     Alfred V. Aho, Brian W. Kernighan, &
  268.     Peter J. Weinberger
  269.     Addison-Wesley Publishing Co.
  270.     ISBN 0-201-07981-X
  271.  
  272.  
  273. *** Subject: L8.  Where can I get Eiffel?
  274.  
  275. A port of the Eiffel language and development
  276. environment is available  for the NeXT. The company is: 
  277.  
  278.     Interactive Software Engineering, Inc.
  279.     Voice: (805)685-1006
  280.     FAX: (805)685-6869
  281.     eiffel@eiffel.com
  282.  
  283. The port is for Eiffel version 2.3 and includes their
  284. standard class libraries as well as some additional
  285. NeXT-specific classes and facilities for integration
  286. with the Interface Builder. 
  287.  
  288. A free eiffel-like language called Sather is available
  289. via ftp from icsi-ftp.berkeley.edu 
  290.  
  291.  
  292.  
  293. --
  294. Editor:
  295. Nathan Janette nathan@laplace.csb.yale.edu
  296.