For the last few months I've been working on a new Erc interpreter, and pretty soon I'm going to start publically working on it and putting it on the CVS (probably), so I thought I'd divulge a bit about it.
The new interpreter is called Magics. It is written in C and LEX, and uses structs and pointers to structs so as to not have such a NastyBug problem (which, I have discovered, was because of my insistence on object-orientation to the extent that a Java GC would not fix). It's generally a much more elegant solution, and hopefully we'll be able to get much further with it than the original Majic.
Also, I'm thinking about implementing a plugin for Tk extension to Erc. I have a bit of a plan on how to do this, but it is not to be discussed now.
Watch out for the next version!... read more
For all of you still interested, despite the long wait, the Ercon is back in action and we're working on a total rewrite and reworking of the language, revision, interpreter, and compiler. This amazing event will for all of history be called: Revision 2 [sic].
But seriously, it really is a nice change.
We are rewriting the revision with a totally new format, so as to be more clear (and so far it seems to be working). We're reworking the language so it will be more coherent and easier to use, and we're doing a total rewrite of the interpreter and compiler to replace the (rather dodgy) Majic java code. Hopefully, our rewrite will work better than the original code, and we will be left with something that functions in practical situations.
The language is being modified and extended to be more useful, both for AI and in general-purpose applications.
The pre-2 version of Revision 2 is available in the docs section of this site.... read more
Revision 1.1 has been released.
1.1 is released. Link: https://sourceforge.net/docman/display_doc.php?docid=26300&group_id=121585
For more info, read the post in the Erc Programming section of the board ( http://ercmajic.proboards41.com ).
Posted by:Unknown User( John.firstname.lastname@example.org ) on comp.lang.misc
quote:Erc was designed to combine the most cognitive-like functions of OO,
List processing, hypertext, and function-based programming paradigms
into something new, in order to provide an especially good coding
environment for AI-type applications. This was called Link-orientation,
because although it incorporates some of the ideas of OO, List
processing, etc., it changes those ideas to go with the theme of
artifical cognition and knowledge representation, in an effort to
simulate multiple facets of AI technology. Today, I bought a book on
AI, and I'm planning to attempt to translate some of the algorithms
into Erc as a test of its success. Link-orientation, however is not
purely OO or anything else, nor is it really a mish-mash of their
respective parts (like incr[TCL] or Java with Lists); it really is a
paradigm shift (though we will see if it's a good one presently),
because it incorporates the ideas, not the grammar, of these paradigms,
and adapts them according to its own unique idea of a linking system
(like a cross between an interactive web page with memory and a neural
net with built-in logic/math).
This is a development release, with new/fixed features, but the Nastybug still lies there. Note to developers: see if you can fix the new bug; it points me to a line with a singe "else". I'll report this new bug soon.
I have just uploaded a draft of Revision 1 to the documentation section. This version is not yet approved by the Ercon, but it's safe to use the stuff documented there as the current version of Majic will support it. Any further drafts of this revision will likely be either adding features that are already present in Majic or elaborating on currently documented features. I will post a news item when the revision is approved.
Now that I have uploaded patch05, it is time for the real development to start. Today I will send the message across the mailing lists to begin debugging. If anyone would like to help who is not an Ercon member, go to the lists portion of this site and subscribe to the majic-interpreter mailing list .
The insidious "nastybug" ( https://sourceforge.net/tracker/index.php?func=detail&aid=1084628&group_id=121585&atid=690796 ) has returned, and all my attempts at fixing it thus far have failed.
I have called upon the members of the Ercon to use our mailing list ( email@example.com ) and work together to fix the bug, and any other bugs that may lurk in the depths of the Majic code. I am very optimistic; the Ercon members are quite skilled in my opinion, and will likely find this bug and/or others keeping our interpreter from functioning properly.
If any of you wish to help us, you may. Just join the mailing list, download the new code (patch 05), and help us find bugs.
The majic-compiler package (majicc) is not a standalone package, nor is it the main focus of development. It requires both the java sdk and the majic java libraries, despite being written in C++. I see many people download only majicc, or on release of a new version, re-download majicc. The majicc code has not changed since version 0.01pre5 of majic, and will only change when we add needed features or when we generate the C++ version of the majic libraries and interpreter, which will be **post 0.01** . Please do not download only majicc and complain to me that it doesn't work!
On a lighter note, I have found the problem with majic's inappropriate #e bug, which hasn't been reported yet because no one seems to test the program, despite 43 total downloads, 21 of which are for majicc. We, the development team, shall fix it reasonably soon, however it will require some restructuring of the library code, and will be a boon to those still using outdated code. Therefore, if you need actual functionality, download the coming patch05 release.
Version 0.01pre2-patch04 is a new version which implements garbage collection in addition to patch03's bug fix of the main insidious bug.
I added many of the things I wanted to have in version 0.01 into the new release, patch02. Unfortunately, I failed once again to write the stream class, so it is, indeed, patch02, and not pre1.
I added many new and interesting features, all of which I hope will make its way into later revisions of the language (Ercon willing ;-) ). These include:
-union and intersection operations on webs
-the link-to "special" operator, which overwrites the code of an op with a new value
-logical and bitwise operators
-contains-p, which returns the value of a named element if it is present in a named web and nil otherwise, and concat, which returns a new web containing the elements from two others
-conditionals and relationals... read more
As you may know, we are on version 0.01pre2-patch01. We have started using patch numbers to enforce certain promises we made to the community about version numbers. They are as follows:
-0.01pre1 will signify the addition of the stream class, which adds the functionality of file and device I/O. It will also, by this point, include parsing of the load command, which loads a variety of library types.
-0.01 will signify a fully functional version, employing all functionalities and syntax illustrated in revision 0 of the Erc Standard, plus some of the new functionality that is planned for revision 1. It will be usable, and therefore will include literals and conditionals, as well as including the fully debugged code from pre1. It will also include standard libraries in Erc, in addition to some compiled libraries which may include non-Erc code. An example is a graphical library.... read more