http://qs321.pair.com?node_id=247173


in reply to Re: How is a perl program processed ?
in thread How is a perl program processed ?

A teacher of mine said that an interpreter has a signature of:

(P × D) ⇀ D

Instead a compiler has a signature of:

P ⇀ D ⇀ D

Where P is the domain of programs, and D is the domain of data.

So perl has a signature of the first kind: you give it the source and the data at the same time. cc, on the other hand, has asignature of the second kind: you give it only the source, and it produces another program, which is a function from data to data.

So much for theory

In practice, traditionally an interpreter has worked in a "miopic" way, looking at a single line (or even less) of code at a time; a compiler instead has always looked "at the big picture", swallowing the entire source at once, looking for problems and inconsistencies.

So, in this way, Perl is a compiler.

And on a sidenote, C is compiled to machine language, not assembly. Assembly is compiled to machine language by an assembler...

-- 
        dakkar - Mobilis in mobile