Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.3 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67a
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Programming > Interpreters

    SMUSHcode 20030211

    Download button

    No screenshots available
    Downloads: 450  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    Good (3.2/5)
    16 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Sam Clippinger | More programs
    GPL / FREE
    March 9th, 2007, 15:12 GMT
    ROOT / Programming / Interpreters

     Read user reviews (0)  Refer to a friend  Subscribe

    SMUSHcode description

    SMUSHcode project is a functional (as opposed to procedural) scripting language interpreter, written in Java.

    SMUSHcode project is a functional (as opposed to procedural) scripting language interpreter, written in Java. Completely documentated.

    SMUSHcode started life in 1997 as a term project for a "Compilers and Translators" class. Originally written in C++, it was conceived as a functional (as opposed to procedural) scripting language. After the class was over, it was reimplemented in Java as a good way to learn a new language. It exists now as a solution without a problem -- it works great and is very extendable, it just isn't currently needed for anything.

    Currently, the examples and the EBNF are a new SMUSHcode programmer's only way to learn the language. The API documentation is amazingly thorough (a good way to learn javadoc, no?) but for some reason refers to the language as "SMUSHcode75". The reasons for the "75" are long lost in the misty past...

    SMUSHcode is a functional scripting language that any LISP or Scheme hacker would have no problem picking up quickly (whether they would want to is a different issue). Most newer and/or self-taught programmers are not familiar with the idea of a functional language, so in a nutshell it is this: Everything is a function. Every function returns a value. Functional languages do not encourage the concept of "Do A. Do B unrelated to A. Do C unrelated to A or B." (that is procedural programming). Functional programming instead follows the model of "Do A, then use A's result to do B, then use B's result to do C.".

    To give a better example, a procedural language might evaluate the Pythagorian theorem thus:

    a_squared := a * a;
    b_squared := b * b;
    c_squared := a_squared + b_squared;
    c := square_root(c_squared);
    A functional language would evaluate it thus:
    c := square_root((a * a) + (b * b));

    Curiously, the author had never studied functional programming and only learned Scheme one semester after designing SMUSHcode. It seemed oddly familiar...

    This project's GNUmakefile is also interesting; it was written before the Ant project was available. Using GNU make, it dynamically explores a package structure, rebuilds class files as necessary, runs javadoc and creates JAR files. It is documented and easy to customize.

    Requirements:

    · Java JDK 1.2.0 or better



    Product's homepage

    Requirements:

    · Java JDK 1.2.0 or better

      


    TAGS:

    scripting language | language interpreter | java interpreter | SMUSHcode | scripting | language

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM