Git Product home page Git Product logo

ici's Introduction

ici - a modified version of Tim Long's ICI interpreter

This is a modified version of the ICI programming language interpreter, originally written by Tim Long and worked on by myself and others over the years.

ICI is a general purpose interpretive programming language that has dynamic typing and flexible data types with the flow control constructs and operators of C.

It is designed for use in many environments, including embedded systems, as an adjunct to other programs, as a text-based interface to compiled libraries, and as a cross-platform scripting language with good string-handling capabilities.

The original ICI implementation was in C and distributed under a public domain license. This version of ICI has been converted to be a C++ program, modifies and extends the language in a number of ways and is distributed under an MIT license.

This version changes some language keywords, and standard function names, and includes a number of extension modules in the base interpreter. This provides more features in the basic environment and specifically includes networking and object serialization as standard features to support experiments in mobile agent programming.

The file doc/CPLUSPLUS.md documents the C++ conversion and language keyword changes.

The keyword changes technically makes this version of ICI a different language - ICI programs that worked with the previous C-implemented interpreter are no longer valid. Sorry. However conversion can be automated, its just naming, but I haven't done that. To be fair I had previously called this version anici (pronouced as in anarchy) and had it use different file name extensions and naming but went back to ici.

Since ICI development has been largely dormant for the past decade I don't feel the changes to the language are a bad thing. The re-casting of the interpreter as a C++ program is a major change and its a good time to make such changes (ignoring the argument about if they should be made at all :))

Building

See doc/BUILDING.md for details on how to build.

Documentation

Most documentation has not been updated.

The majority of the documentation under the doc directory is for the older version of ICI. While the fundamentals of the language have not changed some detail has, e.g. struct is now called map, and the newer functions and types are not documented. Careful reading of the CHANGES file is the suggested work-around.

The file doc/html/ici.html has had the name changes applied and is a good starting point to learn about the language.

The fundamental issue with the documentation is extracting it from the FrameMaker .fm files and turning it into something that can be maintained.

ici's People

Contributors

atrn avatar

Watchers

James Cloos avatar Chungzuwalla avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.