From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII Path: g2news2.google.com!postnews.google.com!u7g2000yqc.googlegroups.com!not-for-mail From: Phil Clayton Newsgroups: comp.lang.ada Subject: Re: Some exciting new trends in concurrency and software design Date: Thu, 23 Jun 2011 18:26:57 -0700 (PDT) Organization: http://groups.google.com Message-ID: <1fb2bb30-a267-4e19-b4c6-08c35d74484a@u7g2000yqc.googlegroups.com> References: <8a5765ba-622a-42cd-9886-28ed7cfed31e@s17g2000yqs.googlegroups.com> <4dff5be5$0$6565$9b4e6d93@newsspool3.arcor-online.net> <9b65f3c7-caee-440f-99ed-0b257221ce58@m24g2000yqc.googlegroups.com> <1v2auyktde5q4.1wqpdg3fval5k.dlg@40tude.net> <4e03bb73$0$6584$9b4e6d93@newsspool3.arcor-online.net> NNTP-Posting-Host: 2.27.126.75 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1308878817 29123 127.0.0.1 (24 Jun 2011 01:26:57 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 24 Jun 2011 01:26:57 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: u7g2000yqc.googlegroups.com; posting-host=2.27.126.75; posting-account=v7gx3AoAAABfjb9m5b7l_Lt2KVEgQBIe User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: HUALESNKRC X-HTTP-UserAgent: Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1,gzip(gfe) Xref: g2news2.google.com comp.lang.ada:20991 Date: 2011-06-23T18:26:57-07:00 List-Id: On Jun 23, 11:17=A0pm, Georg Bauhaus wrote: > The reason that in the context of FPLs I'm mentioning this pattern (of > deliberately ignoring some things being a cause and expensive work > being an effect) is that one of these languages, the ATS language, is > really highly efficient by design and also includes a proof system > right in the language. It has safe pointers, too. So it would seem > promising. =A0Even as a layman, I am sure there are many interesting > advancedfeatures in ATS. > > But as usual, some things have been ignored. I don't know about ATS but can usefully add some points... > As far as I can tell, at least these: > > The numeric types are, by default, basically int of ISO/IEC 9899 (C). Arbitrary magnitude integers are supported in at least SML, OCaml and Haskell. > O'Caml appears to be operating at a similar level, if my copy > isn't broken: > > # let i =3D 4000000000;; > val i : int =3D 4000000000 > # i * i;; > - : int =3D -2446744073709551616 > # > > The puzzling issue is why don't functional programmers just copy > the solution from Lisp, such as CMUCL? Or from Python? Are they > ignoring even "their own relatives"? OCaml: #load "nums.cma";; open Big_int;; let i =3D big_int_of_int 4000000000;; string_of_big_int (mult_big_int i i);; SML: open IntInf; (* not required if structure Int is IntInf *) val i =3D 4000000000; i * i; > Syntax. Programmers will need initiation into another interpretation > of ASCII punctuation. =A0ATS does use ASCII symbols, which may be a lot > better than words insofar as symbols are as international as "+". > The symbols have precisely specified meanings. But they have these > meanings in just this language. =A0How many programmers use just > one language? =A0The situation is worsened by overloading ASCII > symbols, which according to Australian studies does not seem > to help newcomers understand source text. My guess is that in the FP world, there is more variation in syntax because there was no dominant language for the flock to follow. Overloading of arithmetic operators, as in SML above, seems preferable to having a different name for e.g. "+" for each type. > Concurrency. =A0ATS does address concurreny---with POSIX threads > and such. Well, that's at least something. Or maybe not? There is Concurrent Haskell which I know nothing about. For SML, Poly/ ML provides an interface to the pthreads library that has been used to provide a higher-level concurrency interface: http://www4.in.tum.de/~wenzelm/papers/parallel-ml.pdf I'm not sure which others offer true concurrency. I generally agree that many FPLs lack essential features. Phil