9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Mark C. Otto" <Mark_Otto@FWS.Gov>
To: 9fans@cse.psu.edu
Subject: [9fans] High-Level Programming Language for Plan9
Date: Fri, 27 Apr 2001 10:18:15 -0400	[thread overview]
Message-ID: <3AE97FA7.4869F919@FWS.Gov> (raw)

For a while, there has been discussion about high-level languages to port to and
to connect to plan9 more easily.  One language that I have used a fair amount,
especially for text problems is Icon, http://www.cs.arizona.edu/icon/.  It is
the structure programming successor to SNOBOL.  (OK, roll your eyes back into
your heads now.  It was developed by one of your old Bell-Labs buddies, Ralph
Griswald.)  It has an off shoot called UNIcon, http://www.drones.com/unicon/,
which was going to incorporate Unicode.  It connections to the OS like Perl
(builtin and other system commands, BSD sockets, X-Windows) but is a much
cleaner language.  Below is their brief introduction to the language.

The idea would not be to use sockets or X11 in plan9 but to replace those with
plan9 network and graphics routines.  Given that plan9 uses text-based ways of
networking and doing graphics and uses UNICode, it would make a natural
extension of UNIcon.  Any comments from those more knowledgable about
programming languages than I?

Mark


ICON
----
Icon is a high-level programming language with extensive facilities for
processing strings and structures. Icon has several novel features, including
expressions that may produce sequences of results, goal-directed evaluation that
automatically searches for a successful result, and string scanning that
allows operations on strings to be formulated at a high conceptual level. Icon
also provides high-level graphics facilities.

Icon emphasizes high-level string processing and a design philosophy that allows
ease of programming and short, concise programs. Storage allocation and
garbage collection are automatic in Icon, and there are few restrictions on the
sizes of objects. Strings, lists, and other structures are created during
program
execution and their size does not need to be known when a program is written.
Values are converted to expected types automatically; for example, numeral
strings read in as input can be used in numerical computations without explicit
conversion. Icon has an expression-based syntax with reserved words; in
appearance, Icon programs resemble those of Pascal and C.
Although Icon has extensive facilities for processing strings and structures, it
also has a full repertoire of computational facilities. It is suitable for a
wide
variety of applications. Some examples are:

      text analysis
      text editing
      document formatting
      artificial intelligence
      expert systems
      rapid prototyping
      symbolic mathematics
      text generation
      data laundry

There are public-domain implementations of Icon for the Macintosh, MS-DOS, many
UNIX systems, and VAX/VMS.


             reply	other threads:[~2001-04-27 14:18 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-27 14:18 Mark C. Otto [this message]
2001-04-27 16:43 ` Douglas A. Gwyn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3AE97FA7.4869F919@FWS.Gov \
    --to=mark_otto@fws.gov \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).