Grokbase Groups Perl ai August 2001
FAQ

From: Helmut Enck-Radana
Obviously there is a big gap between what is possible today and what
is used to be done in industry.
Helmut -

We are the industry. What new concepts have been
made manifest in languages that I can use today?
I'll try them out.

- lee

Search Discussions

  • Helmut Enck-Radana at Aug 10, 2001 at 11:25 am

    On 10 Aug 2001, at 10:49, Lee Goddard wrote:

    What new concepts have been made manifest in languages that I can
    use today? I'll try them out.
    Seems you are asking 2 questions:

    1. What new concepts have been made manifest in languages?

    -> There are a lot of text books, articles and research papers on
    this subject. I probably shouldn't start to cite them here.

    2. Which of these languages can I use today?

    -> Depends on the kind of your projects, on your skills, and
    possibly some more parameters.

    In my current project, for example, I am using Erlang
    <http://www.erlang.org> and Refal <http://www.refal.net>. (I wasn't
    always so lucky, I had to use COBOL, C++, VB, Java, and Perl in
    past projects.) There are quite a few languages you might want to
    consider, if you want to gain the advantages of modern
    programming language concepts and if you can afford to go without
    the advantages of a language which is in widespread use. (This is
    one of the reasons why these languages aren't used by a lot of
    programmers: Most can't afford to use a language which is not in
    widespread use.)

    If you really want to know more about this subject, this list
    probably isn't the best place to ask questions about it. This is a
    Perl list and here we shouldn't discuss which language we could
    use instead of Perl, but how we can improve programming with Perl
    (e.g. by using the concepts of supercompilation :-).

    -- Helmut
  • Lee Goddard at Aug 10, 2001 at 11:34 am

    From: Helmut Enck-Radana
    On 10 Aug 2001, at 10:49, Lee Goddard wrote:

    What new concepts have been made manifest in languages that I can
    use today? I'll try them out.
    Seems you are asking 2 questions:

    1. What new concepts have been made manifest in languages?

    -> There are a lot of text books, articles and research papers on
    this subject. I probably shouldn't start to cite them here.

    2. Which of these languages can I use today?

    -> Depends on the kind of your projects, on your skills, and
    possibly some more parameters.

    In my current project, for example, I am using Erlang
    <http://www.erlang.org> and Refal <http://www.refal.net>. (I wasn't
    always so lucky, I had to use COBOL, C++, VB, Java, and Perl in
    past projects.) There are quite a few languages you might want to
    consider, if you want to gain the advantages of modern
    programming language concepts and if you can afford to go without
    the advantages of a language which is in widespread use. (This is
    one of the reasons why these languages aren't used by a lot of
    programmers: Most can't afford to use a language which is not in
    widespread use.)

    If you really want to know more about this subject, this list
    probably isn't the best place to ask questions about it. This is a
    Perl list and here we shouldn't discuss which language we could
    use instead of Perl, but how we can improve programming with Perl
    (e.g. by using the concepts of supercompilation :-).
    Actually, I was asking what "new" *concepts* have been
    made manifest in languages, that I might employ these
    concepts in Perl extensions.

    When asking, I was guessing that these concepts might
    be AI-related (most "new" things claim to be).

    Thus my question is explicitly relevant to this list,
    and you have accidentally dodged the issue, as adeptly
    as a high-ranking academic :)

    Oh well.

    -lee
  • Helmut Enck-Radana at Aug 10, 2001 at 1:53 pm

    At 13:33 10-08-01, Lee Goddard wrote:
    From: Helmut Enck-Radana
    On 10 Aug 2001, at 10:49, Lee Goddard wrote:
    What new concepts have been made manifest in languages that I can
    use today? I'll try them out.
    Seems you are asking 2 questions:

    1. What new concepts have been made manifest in languages?
    [...]
    2. Which of these languages can I use today?
    Actually, I was asking what "new" *concepts* have been
    made manifest in languages, that I might employ these
    concepts in Perl extensions.
    Sorry, misunderstood you. In this case it is even more difficult to give an
    answer to your question. There are a lot of programming language concepts
    which aren't compatible with each other, and the problem with more
    traditional languages is not only that you can't do things which you should
    be able to do, but also (and may be even more) that you can do things which
    you shouldn't be able to do (like e.g. modifying the value of a variable).
    Finding out how language features can be combined which originally weren't
    meant to be combined seems to be a very difficult task, since AFAIK there
    is still no language which combines at least most of the important advanced
    language concepts, which separately are well understood.

    I read some interesting discussions between the developers of Python on
    integrating some advanced concepts into their implementation. Most
    proposals are dropped after thinking about the consequences more
    thoroughly. Still they managed to add some fine features to their language.
    What was possible in Python should also be possible in Perl. (But I'm not
    up-to-date regarding the development of Perl - may be these things are
    there already.)

    If you want to understand modern programming language concepts you should
    try to do some programming with declarative languages like Haskell
    <http://www.haskell.org>, Clean <http://www.cs.kun.nl/~clean>, Mercury
    <http://www.cs.mu.oz.au/research/mercury/>, Erlang, Prolog, Refal, ...
    Thus my question is explicitly relevant to this list,
    and you have accidentally dodged the issue, as adeptly
    as a high-ranking academic :)
    Sorry, I didn't want to pretend to be one.

    - Helmut
  • Simon Cozens at Aug 10, 2001 at 2:23 pm

    On Fri, Aug 10, 2001 at 03:29:09PM +0200, Helmut Enck-Radana wrote:
    Sorry, misunderstood you. In this case it is even more difficult to give an
    answer to your question. There are a lot of programming language concepts
    which aren't compatible with each other, and the problem with more
    traditional languages is not only that you can't do things which you should
    be able to do, but also (and may be even more) that you can do things which
    you shouldn't be able to do (like e.g. modifying the value of a variable).
    Finding out how language features can be combined which originally weren't
    meant to be combined seems to be a very difficult task, since AFAIK there
    is still no language which combines at least most of the important advanced
    language concepts, which separately are well understood.

    I read some interesting discussions between the developers of Python on
    integrating some advanced concepts into their implementation. Most
    proposals are dropped after thinking about the consequences more
    thoroughly. Still they managed to add some fine features to their language.
    What was possible in Python should also be possible in Perl. (But I'm not
    up-to-date regarding the development of Perl - may be these things are
    there already.)
    I'm going to be blunt again.

    This is complete waffle, designed to make you sound like you're saying
    something intelligent when in fact you're saying nothing useful at all.

    Let's try again: name a single development in modern programming language
    research that has been bypassed by the industry.

    Simon
  • Nathan Torkington at Aug 10, 2001 at 8:41 pm

    Simon Cozens writes:
    Let's try again: name a single development in modern programming language
    research that has been bypassed by the industry.
    Let's not. Let's let this thread drop, and get back to our heated
    discussion of tree-based Bayesian inference engines building dynamic
    ontologies from approximate data in Perl. Or whatever.

    Honestly, there's nothing wrong with having a mailing list that
    periodically there's no traffic on. So we don't have much to say
    right now about Perl and AI. That's great. I'd much rather get no
    signal than all noise.

    Of course, that's just my opinion, I could be wrong.

    Nat
  • John Porter at Aug 10, 2001 at 8:53 pm

    Nathan Torkington wrote:
    I'd much rather get no signal than all noise.
    Couldna said it better myself.

    --
    John Porter
  • Rick Rankin at Aug 11, 2001 at 12:11 am
    It's not like this kind of thing hasn't been done before:

    "Dynamic optimization refers to the runtime optimization of a native program
    binary. This
    paper describes the design and implementation of Dynamo, a prototype dynamic
    optimizer that is
    capable of optimizing a native program binary at runtime. Dynamo is a
    realistic implementation, not
    a simulation, that is written entirely in user-level software, and runs on a
    PA-RISC machine under
    the HPUX operating system.

    Dynamo does not depend on any special programming language, compiler,
    operating system or
    hardware support. The program binary is not instrumented and is left
    untouched during Dynamo's
    operation. Dynamo observes the program's behavior through interpretation to
    dynamically select hot
    instruction traces from the running program. The hot traces are optimized
    using low-overhead
    optimization techniques and emitted into a software code cache. Subsequent
    instances of these traces
    cause the cached version to be executed, resulting in a performance boost.

    Contrary to intuition, we demonstrate that it is possible to use a piece of
    software to improve
    the performance of a native, statically optimized program binary, while it
    is executing. Dynamo not
    only speeds up real application programs, its performance improvement is
    often quite significant.
    For example, the performance of many +O2 optimized SPECint95 binaries
    running under Dynamo is
    comparable to the performance of their +O4 optimized version running without
    Dynamo."




    Transparent Dynamic Optimization;Vasanth Bala, Evelyn Duesterwald, Sanjeev
    Banerjia;HP Laboratories Cambridge;June, 1999

    -----Original Message-----
    From: John Porter
    Sent: Friday, August 10, 2001 3:54 PM
    To: perl-ai@perl.org
    Subject: Re: Modern Programming Language Concepts


    Nathan Torkington wrote:
    I'd much rather get no signal than all noise.
    Couldna said it better myself.

    --
    John Porter
  • Rick Rankin at Aug 11, 2001 at 12:25 am
    I might also add that since this sort of method achieves it's result through
    observing "the program's behavior" and applying appropriate optimizations,
    this method would appear to be attempting to replicate the observation and
    optimization techniques (albeit low-level) of a human programmer. Or perhaps
    to do better than a human. This would seem to fall into the domain of
    Artificial Intelligence. I say, stop arguing and get on with the job. I
    haven't seen anything else interesting on this forum lately.

    -----Original Message-----
    From: Rick Rankin
    Sent: Friday, August 10, 2001 7:11 PM
    To: perl-ai@perl.org
    Subject: Re: Supercompiled Perl: HP's Dynamo Project


    It's not like this kind of thing hasn't been done before:

    "Dynamic optimization refers to the runtime optimization of a native program
    binary. This
    paper describes the design and implementation of Dynamo, a prototype dynamic
    optimizer that is
    capable of optimizing a native program binary at runtime. Dynamo is a
    realistic implementation, not
    a simulation, that is written entirely in user-level software, and runs on a
    PA-RISC machine under
    the HPUX operating system.

    Dynamo does not depend on any special programming language, compiler,
    operating system or
    hardware support. The program binary is not instrumented and is left
    untouched during Dynamo's
    operation. Dynamo observes the program's behavior through interpretation to
    dynamically select hot
    instruction traces from the running program. The hot traces are optimized
    using low-overhead
    optimization techniques and emitted into a software code cache. Subsequent
    instances of these traces
    cause the cached version to be executed, resulting in a performance boost.

    Contrary to intuition, we demonstrate that it is possible to use a piece of
    software to improve
    the performance of a native, statically optimized program binary, while it
    is executing. Dynamo not
    only speeds up real application programs, its performance improvement is
    often quite significant.
    For example, the performance of many +O2 optimized SPECint95 binaries
    running under Dynamo is
    comparable to the performance of their +O4 optimized version running without
    Dynamo."




    Transparent Dynamic Optimization;Vasanth Bala, Evelyn Duesterwald, Sanjeev
    Banerjia;HP Laboratories Cambridge;June, 1999

    -----Original Message-----
    From: John Porter
    Sent: Friday, August 10, 2001 3:54 PM
    To: perl-ai@perl.org
    Subject: Re: Modern Programming Language Concepts


    Nathan Torkington wrote:
    I'd much rather get no signal than all noise.
    Couldna said it better myself.

    --
    John Porter
  • Paris Sinclair at Aug 11, 2001 at 1:29 am

    On Fri, 10 Aug 2001, Rick Rankin wrote:

    Dynamo does not depend on any special programming language, compiler,
    operating system or hardware support. The program binary is not
    instrumented and is left untouched during Dynamo's operation. Dynamo
    observes the program's behavior through interpretation to dynamically
    select hot instruction traces from the running program. The hot traces
    are optimized using low-overhead optimization techniques and emitted
    into a software code cache. Subsequent instances of these traces cause
    the cached version to be executed, resulting in a performance boost.

    Contrary to intuition, we demonstrate that it is possible to use a
    piece of software to improve the performance of a native, statically
    optimized program binary, while it is executing. Dynamo not only
    speeds up real application programs, its performance improvement is
    often quite significant. For example, the performance of many +O2
    optimized SPECint95 binaries running under Dynamo is comparable to the
    performance of their +O4 optimized version running without Dynamo."

    Transparent Dynamic Optimization;Vasanth Bala, Evelyn Duesterwald, Sanjeev
    Banerjia;HP Laboratories Cambridge;June, 1999
    So then, I think it is worth asking, can AI in Perl be used to speed up
    this sort of optimization? I would be surprised if the gains are larger
    than the losses. If that is the case, then it is clearly a dead end from
    the perspective of Perl AI, excepting that anything that speeds up perl
    speeds up Perl.

    --
    Paris
  • Rick Rankin at Aug 11, 2001 at 1:40 am
    HP was able to run a native HP-RISC program in an HP-RISC instruction set
    interpreter (virtual machine) running on an HP-RISC processor and achieve a
    20% increase in performance. It may be hard to imagine running a program
    running in an interpreter for an instruction set on the same processor and
    yet running FASTER, but HP did it. This research was the basis for the Aries
    IA-32 interpreter designed to run on the Itanium IA-64 which provides IA-32
    binary compatibility. (See IEEE Computer cover story, March 2000). Not only
    does this technique work, it's in service.

    I have some more references, papers, theses, etc. if you're interested.



    -----Original Message-----
    From: Paris Sinclair
    Sent: Friday, August 10, 2001 8:36 PM
    To: Rick Rankin
    Cc: perl-ai@perl.org
    Subject: Re: Supercompiled Perl: HP's Dynamo Project

    On Fri, 10 Aug 2001, Rick Rankin wrote:

    Dynamo does not depend on any special programming language, compiler,
    operating system or hardware support. The program binary is not
    instrumented and is left untouched during Dynamo's operation. Dynamo
    observes the program's behavior through interpretation to dynamically
    select hot instruction traces from the running program. The hot traces
    are optimized using low-overhead optimization techniques and emitted
    into a software code cache. Subsequent instances of these traces cause
    the cached version to be executed, resulting in a performance boost.

    Contrary to intuition, we demonstrate that it is possible to use a
    piece of software to improve the performance of a native, statically
    optimized program binary, while it is executing. Dynamo not only
    speeds up real application programs, its performance improvement is
    often quite significant. For example, the performance of many +O2
    optimized SPECint95 binaries running under Dynamo is comparable to the
    performance of their +O4 optimized version running without Dynamo."

    Transparent Dynamic Optimization;Vasanth Bala, Evelyn Duesterwald, Sanjeev
    Banerjia;HP Laboratories Cambridge;June, 1999
    So then, I think it is worth asking, can AI in Perl be used to speed up
    this sort of optimization? I would be surprised if the gains are larger
    than the losses. If that is the case, then it is clearly a dead end from
    the perspective of Perl AI, excepting that anything that speeds up perl
    speeds up Perl.

    --
    Paris
  • Paris Sinclair at Aug 11, 2001 at 1:53 am

    On Fri, 10 Aug 2001, Rick Rankin wrote:

    HP was able to run a native HP-RISC program in an HP-RISC instruction set
    interpreter (virtual machine) running on an HP-RISC processor and achieve a
    20% increase in performance. It may be hard to imagine running a program
    running in an interpreter for an instruction set on the same processor and
    yet running FASTER, but HP did it. This research was the basis for the Aries
    IA-32 interpreter designed to run on the Itanium IA-64 which provides IA-32
    binary compatibility. (See IEEE Computer cover story, March 2000). Not only
    does this technique work, it's in service.

    I have some more references, papers, theses, etc. if you're interested.
    I am confused as to which part of my post you are replying to.

    While we're staying off topic q/:(/, I am not surprised that their is much
    room to speed things up at runtime on a RISC system, but as Perl is very
    high level, I think a low level approach using other languages is more
    appropriate. But hasn't VLIW pretty much superceded RISC, mainly to make
    it easier to get these sort of gains?

    Okay, I'm done, before I'm one of the kill file casualties that have
    certainly been seen in this thread. ;)

    --
    Paris
  • Lee Goddard at Aug 11, 2001 at 10:08 am
    I'm working on something that filters mailing lists
    by topic related to their supposed purpose.

    At the moment it's pretty basic, but it is certainly
    something investing in.
  • John Porter at Aug 11, 2001 at 4:22 pm

    Paris Sinclair wrote:
    So then, I think it is worth asking, can AI in Perl be used to speed up
    this sort of optimization? I would be surprised if the gains are larger
    than the losses.
    Depends. If you spend a lot of time optimizing a chunk of code
    that will only get run once more, then sure, it's a loser.

    But imagine adding some overhead to the first couple-three iterations
    of a loop which is destined to go a million more times.
    Could be a big winner.

    --
    John Porter

    Science class should not end in tragedy.
  • Rocco Caputo at Aug 11, 2001 at 12:01 pm
    On Fri, Aug 10, 2001 at 07:11:19PM -0500, Rick Rankin wrote:

    [...]
    "Dynamic optimization refers to the runtime optimization of a native
    Runtime... optimizing...
    program binary. This paper describes the design and implementation
    of Dynamo, a prototype dynamic optimizer that is capable of
    optimizing a native program binary at runtime. [...]
    Dynamo observes the program's behavior through interpretation to
    dynamically select hot instruction traces from the
    ... interpreter... selecting hot instructions...
    running program. The hot traces are optimized using low-overhead
    optimization techniques and emitted into a software code
    ... and rewriting them...
    cache. Subsequent instances of these traces cause the cached version
    to be executed, resulting in a performance boost.
    ... faster?

    [...]
    Transparent Dynamic Optimization;Vasanth Bala, Evelyn Duesterwald,
    Sanjeev Banerjia;HP Laboratories Cambridge;June, 1999
    Can we make perl do this? Even as an experimental add-on module using
    B:: something, asynchronous callbacks, and maybe threads? Could it be
    extended to the point where it eats hot running bytecode and excretes
    native machine instructions in its place?

    Sincerely, your man in the field (the Hubble Deep Field, it would
    seem),

    -- Rocco Caputo / troc@netrus.net / poe.perl.org / poe.sourceforge.net
  • Simon Cozens at Aug 12, 2001 at 7:26 pm

    On Sat, Aug 11, 2001 at 08:00:59AM -0400, Rocco Caputo wrote:
    Can we make perl do this?
    Perl can do anything. See optimize.pm on CPAN.

    --
    We all agree on the necessity of compromise. We just can't agree on
    when it's necessary to compromise.
    -- Larry Wall
  • Lee Goddard at Aug 10, 2001 at 2:26 pm

    Helmut:

    Finding out how language features can be combined which originally weren't
    meant to be combined seems to be a very difficult task, since AFAIK there
    is still no language which combines at least most of the important advanced
    language concepts, which separately are well understood.
    Could you give a few examples of these advanced features,
    beyond typing?
    If you want to understand modern programming language concepts you should
    try to do some programming with declarative languages
    I have done, and some of those languages you mention are from the '60s.
    Thus my question is explicitly relevant to this list,
    and you have accidentally dodged the issue, as adeptly
    as a high-ranking academic :)
    Sorry, I didn't want to pretend to be one.
    Crieky, no!

    Cheers,
    Lee
  • Helmut Enck-Radana at Aug 10, 2001 at 3:15 pm

    At 16:20 10-08-01, Simon Cozens wrote:
    name a single development in modern programming language
    research that has been bypassed by the industry.
    You must be living in a different universe than I do.

    -- Helmut
  • Josiah Bryan at Aug 14, 2001 at 5:58 pm

    "Helmut Enck-Radana" wrote:
    At 16:20 10-08-01, Simon Cozens wrote:
    name a single development in modern programming language
    research that has been bypassed by the industry.
    You must be living in a different universe than I do.
    You are side-stepping the question, again.
    Sorry, but you are sounding a bit like Al Gore in the
    American elections last year. Just answer the question directly.
    I'll pose the question to you again, Helmut:

    "Could you name a single development in modern programming language
    research that has been bypassed by the industry?"

    I, to be honest, am genuinly interested in hearing your respons,
    not to criticize you, but to improve programming in Perl.

    Thanks!

    --
    Josiah Bryan

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupai @
categoriesperl
postedAug 10, '01 at 9:49a
activeAug 14, '01 at 5:58p
posts19
users9
websiteperl.org

People

Translate

site design / logo © 2021 Grokbase