Slashdot Mirror


International Workshop on Interpreted Languages

Sebastian Bergmann writes "Interpreted programming languages are increasingly gaining importance in both the commercial and scientific world. The 1st International Workshop on Interpreted Languages that will be held during the Net.ObjectDays 2004 conference this fall in Erfurt, Germany takes this into account and will present current developments from the exciting world of interpreted languages. The Call for Papers was recently announced and research papers and industry case studies related to Interpreted Languages can be submitted until April 23rd, 2004."

31 comments

  1. Superior Edit-Run cycles by G4from128k · · Score: 4, Insightful

    I've always enjoyed the superior edit-rerun cycle that comes with many interpreted languages. You bang out a few lines of code, hit return and see the results immediately.

    Compiled languages may be faster for silicon hardware, but interpreted languages are often faster for neural wetware. Given the decreasing cost of silicon and the increasing cost of labor, interpretted langauges should see increase usage for many "small" programming tasks.

    --
    Two wrongs don't make a right, but three lefts do.
    1. Re:Superior Edit-Run cycles by GerritHoll · · Score: 1
      I've always enjoyed the superior edit-rerun cycle that comes with many interpreted languages. You bang out a few lines of code, hit return and see the results immediately.

      Indeed. And what's even more, many interpreted language have an excellent interactive mode, which is especially great when learning the language. It's simply fun to type the lines from a tutorial straight after the prompt and see the response (or the SyntaxError ;-)

    2. Re:Superior Edit-Run cycles by hding · · Score: 1

      Or you could get the best of both worlds by using a interactive compiled language, e.g. most Common Lisps.

    3. Re:Superior Edit-Run cycles by LeonardShelby · · Score: 4, Interesting


      I've always enjoyed the superior edit-rerun cycle that comes with many interpreted languages. You bang out a few lines of code, hit return and see the results immediately.

      You can get close to this with compiled languages that use incremental compilers, like the Eiffel compiler from Eiffel Software. You still have to hit the Compile button (it's an IDE), but it will only compile what it has to. If you've only changed a line or two, the compile step could flash right by. The compiler is even good enough to figure out what has been affected by your change, and only compile those portions (even if they are just at the routine level). All this without a make file, no less.

      Then, when you're ready to ship, you compile to native code (the above is more or less interpreted), with full optimizations on, and you're set.

      The extra benefit comes when you've got a lot of existing code that may or may not be affected, even in small ways, from your new work. Compiles might take a while in traditional systems, but they don't have to if your compiler is smart enough. All that saved time can add up.

      --
      remember Sammy Jankis
    4. Re:Superior Edit-Run cycles by Haeleth · · Score: 3, Interesting

      Compiled languages may be faster for silicon hardware, but interpreted languages are often faster for neural wetware. Given the decreasing cost of silicon and the increasing cost of labor, interpretted langauges should see increase usage for many "small" programming tasks.

      So what you really want is the best of both worlds. Modern languages like Haskell or OCaml provide multiple levels of compilation. OCaml, for example, can run in an interactive toplevel loop, or as a fully interpreted script, or compiled to portable bytecode; and when you've finished debugging, you can then compile the final program to a native binary for maximum speed.

      I believe you can do similar things with more established languages like Lisp, too. Mistakenly perceiving the choice in programming languages as a choice between C/C++ or Perl/Python/Ruby doesn't do anyone any favours.

    5. Re:Superior Edit-Run cycles by bellings · · Score: 1

      You've confused the word "interactive" with "interpreted." Don't feel bad -- it's a common mistake made by freshmen at bad colleges.

      --
      Slashdot is jumping the shark. I'm just driving the boat.
    6. Re:Superior Edit-Run cycles by angel'o'sphere · · Score: 3, Informative

      The same is true for Java IDEs like Omnicore.com's CodeGuide.
      Most code is kept compiled all the time, and even during running/debugging you can hot swap modified classes.

      The current beta version can even execute code forward and backward in the debugger. Step over a bug, step back, change the line and step forward again ...

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    7. Re:Superior Edit-Run cycles by jovlinger · · Score: 1

      ... how do they undo state mutation? Do they keep an undo/redo stack for the heap? eww...

      I always liked smalltalk's code browser that let you modify your methods while the program was running; this lead to some really fast development.

      I'm wondering whether your experience w/ the hot-swap enabled debugger is the same: that most development is done while debugging. You just stub out your methods, start the program, and add code until it's running on your sample input. (then you sit down and refactor) Or does the system-programming nature of java come through, that you sit down and agonize for a week over which classes do what and where the methods go and what your invariants and edge cases are?

      Man, I enjoyed smalltalk (digitalk smalltalk for the mac: ran in less than half a meg, including a GUI widget set)

  2. recent resources? by Cambo · · Score: 1

    A few years ago I did an undergraduate thesis on interpreted languages (created my own). At the time there was hardly anything in terms of books or resources on the subject. Everything was geared towards some variant of lexx or yacc, and I eventually ended up producing a crappy version of something that resembled basic.

    Has this changed recently?

    --
    There are only 10 types of users, those that understand binary and those who don't.
    1. Re:recent resources? by bellings · · Score: 2

      There's a little book called SICP, or, the Structure and Interpretation of Computer Programs. It covers stuff like writing interpreters, but it's mostly aimed at college freshmen without any previous computer experience, so it doesn't go into any great depth.

      It certainly wouldn't cover interpreted languages as deeply as a college senior writing a thesis on interpreted languages would appreciate.

      --
      Slashdot is jumping the shark. I'm just driving the boat.
    2. Re:recent resources? by alex_tibbles · · Score: 2, Informative

      There is also the paper "The Art of the Interpreter" by the same author (one of the Sussmans) - other papers by Sussman available from http://library.readscheme.org/page1.html. The Art of the Interpreter is all about implementing mini-languages in interpreters. Using Lisp. Making an interpreter in Lisp is easy, since the whole language runtime gives you an interpreter, so you just define your parser and your evaluator...

  3. stupid sig by Anonymous Coward · · Score: 2, Funny

    There are only 10 types of users, those that understand binary and those who don't.

    What are the other 8?

    1. Re:stupid sig by Anonymous Coward · · Score: 0

      You obviously don't understand binary... heh

      10 == 2 in binary notation

      best greetings

  4. While this may sound... harsh by TheRealMindChild · · Score: 3, Flamebait

    The reason Interpreted Languages are becoming "Ever so important", is a few reasons:

    1) A kid (or adult) with some brains, but little actual low level computer knowledge can come up with an interpreter

    2)Computers are now at the point where something interpreted isn't even noticed half of the time (speed wise)

    3)To build off of #1, if your interpreter is written in protable C, then your new language is that much more portable

    This is the time, more so then ever, that we are going to see more of a division in the term "Programmer". You will have your "Interpreted Language Programmers" or "Scripter", then you will have the lower level monkey's writing the interpreter's to interface with the OS, then possibly, a system level programmer, making the OS do what the OS does.

    Sure, its been going like this for a while, but I believe the transition phase is coming to an end

    --

    "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    1. Re:While this may sound... harsh by snjoseph · · Score: 2, Interesting
      1) A kid (or adult) with some brains, but little actual low level computer knowledge can come up with an interpreter
      I'd add that, even if you do have a lot of brains, it's both easier and ensures wider use to develop an interpreter if you're trying to introduce a new language. Writing a good compiler is High Art and by no means identical to language design.

      On that note, interpretation also gives a language designer an amount of conceptual freedom by abstracting the architecture. That's why languages with paradigms that don't translate well onto von Neumann-y notions (eg, LISP or Prolog) are interpreted as a rule. Interestingly, some of these concepts can then migrate into compiled languages, for instance the Boost Lambda library for C++.

    2. Re:While this may sound... harsh by Anonymous Coward · · Score: 2, Informative

      That's why languages with paradigms that don't translate well onto von Neumann-y notions (eg, LISP or Prolog) are interpreted as a rule. Interestingly, some of these concepts can then migrate into compiled languages, for instance the Boost Lambda library for C++.

      Don't you realise that there are native compilers for Lisp? Haven't you noticed that Haskell, most MLs, Eiffel, and myriad other functional languages are all compiled to native code?

      Haven't you looked at the benchmarks that show Common Lisp and OCaml easily beating C++ in speed trials?

      Interpreters are great, but let's not forget that anything that can be interpreted can be compiled. Compiling a functional language may be trickier than compiling C, but there are an awful lot of good brains in computer science who are quite up to the task.

    3. Re:While this may sound... harsh by __past__ · · Score: 2, Interesting
      That's why languages with paradigms that don't translate well onto von Neumann-y notions (eg, LISP or Prolog) are interpreted as a rule.
      I don't know much about Prolog, so let's look at current popular Common Lisp implementations: As for programming constructs introduced by Lisp and other high-level languages, no need to refer to obscure things like the Boost Greenspun^WLambda library. How about garbage collection, recursion, symbolic computing, or conditionals? (Lisp was the first language to have an "if"-like construct, before that it was all FORTRAN-style computed GOTOs)
  5. Dynamic typing by WayneConrad · · Score: 3, Interesting

    I use mostly interpreted languages in my daily work, and have for years now. I love the fast edit/test cycle, but that's not the biggest reason. The biggest reason is that most of them, at least the ones I use, are dynamically typed. It's wonderful being free from the yoke of static type checking. My code talks a more about the problem it's solving and less about how it's solving the problem.

    I'm not sure if I'd like dynamic typing if I weren't doing lots of test-first programming, but with strong unit test coverage my tests are doing much more to ensure the reliability of my code than static type checking can possibly do. Static type checking is a weak substitute for real tests, but if you're not doing testing, it's the best test you've got.

    Don't forget the wonders of lexical closures, something offered by any self respecting interpreted language. That's another feature that makes code more expressive and less yackity-yackity.

    1. Re:Dynamic typing by Anonymous Coward · · Score: 1, Insightful

      Don't forget the wonders of lexical closures, something offered by any self respecting interpreted language.

      And also offered by any self respecting compiled language. Just because C doesn't have 'em doesn't mean nobody else does, you know.

    2. Re:Dynamic typing by kwoff · · Score: 1

      > at least the ones I use, are dynamically typed. It's
      > wonderful being free from the yoke of static type checking.

      On the other hand, there is some satisfaction from getting
      a language like Ocaml to compile. That language in particular
      seems almost self-testing.

  6. Indirection and Extensability by stuffduff · · Score: 1

    I always liked MUMPS for it's indirection and execute support. Indirection gave the ability to use a variable as a pointer, which is extremely important where real pointers are not available. But my favorite has to be execution. The ability to construct a line (or lines) of code in a variable and then execute it. Instead of coding for every possible variation of handling something I can just build a module that uses rules to construct the code and then turn it loose on a problem!

    --
    "Can there be a Klein bottle that is an efficient and effective beer pitcher?"
  7. Java & .NET interpreted!? by DukeyToo · · Score: 1, Insightful
    From the article:
    This world of interpreted programming languages, to which also C# and Java belong, is changing

    Thats a somewhat liberal intepretation of the word "interpreted", I would say.

    I think they should just have left off the word "interpreted", or better yet, replaced it with "scripted". Mentioning Java and C# just confuses the issue.

    --
    Most writers regard truth as their most valuable possession, and therefore are most economical in its use - Mark Twain
    1. Re:Java & .NET interpreted!? by Anonymous Coward · · Score: 1, Insightful

      It's an academic conference about interpreters; I think java, C# fit in it perfectly. The label scripting does not.

    2. Re:Java & .NET interpreted!? by anomalous+cohort · · Score: 2, Interesting

      This is hair splitting. You could also argue that compiled C code is "interpreted" by the CPU's nanocode. It may be academically true but no one in the field would agree and you would be labeled as an idiot were you to casually refer to C as an interpreted language.

      The same is so for Java and .NET languages such as C#. They are not in the same category as interpreted perl or python. You still have to take the extra step to compile programs written in Java or C# before they can be run. Also, Java and C# have support for compile time checking of static typing (which, IMHO, is a good thing).

  8. Hm by Anonymous Coward · · Score: 0

    By all accounts the number of article replies indicates the clear superiority of interpreted languages over other umm ... languages.

  9. Re:Java & .NET interpreted!? YES!!! by Anonymous Coward · · Score: 0
    "Non-interpreted" is just PR to get away from the stigma of the word "interpreted". Really, there should be no stigma.

    It should be noted that Perl also executes a parse-tree, which isn't much different than Perl byte code -- just that what is parsed is pcode instead of source.

    So yes, Java and C# are interpreted if you can say that Python and Perl and Ruby are interpreted -- that is, they require a program to run them. Hardly ANY interpreted language is "line interpreted" in the truest sense of the form these days (aka BASIC).

  10. Interpreted Does Not Mean High Level by swdunlop · · Score: 2, Insightful

    Reviewing the comments made thus far, despite the fact that most are simply trolls honing their skills, it seems to bear pointing out that just because a language is high level, does not mean that it is interpreted. While many high level languages are interpreted, and many interpreted languages are high level, there are many exceptions to the rule.

    Common Lisp, which has been mentioned here as the great shining hope for compiled environments is a fairly high level, abstract language. Java is, at its basest level, the jvm, an interpreted, primitive system, although the byte code compiler has made Java increasingly higher level.

    Many of the arguments made from one side or another are commentary on the relative merits of high level and low level languages, not a discussion of platform neutrality, execution performance and various methods of using optimization to reduce the penalty of interpreters.

    For my two cents on the whole performance issue, an indirect-threaded Forth is in many ways an interpreted language which is very low level and quite fast. It wasn't designed by a pubescent teenager, and Forth images are often smaller than comparable C programs, despite having the interpreter included in the image.

    1. Re:Interpreted Does Not Mean High Level by swdunlop · · Score: 1

      God save our moderators.. A well reasoned comment on the relationship between two oft-confused terms on Slashdot is a troll. I suppose I should start posting anything intelligent as an AC to protect my beloved karma.

  11. Pascal Costanza. by Anonymous Coward · · Score: 0

    That old loser. First he was with Java then went with LISP, of all things.

  12. Live by the troll, die by the troll by Anonymous Coward · · Score: 0

    Do you suppose calling people with reasoned comments "trolls" might bring that kind of attention on?