3.2.1

Построение компилятора компиляторов

<IntLM   ProgL  (  Arg  ) >
Þ Res
 

 
<Scp  ‘<IntLM   ProgL  (  x  ) >’  >
Þ Prog'M
 

 
<Scp  ______ ______ _ ___ _ __ >
<IntLM ProgL (  x ) >
Þ Prog'M
 
<Prog'M Arg > = <IntLM  ProgL ( Arg )>  =  Res
 

 
<Scp  ______  ProgL  _ ___ _ __ >
<IntLM · (  x ) >
Þ Prog'M
 

 
<Scp  _____ ______ ___ _ ___ _ __ __ >
<Scp  ______  p _ ___ _ __ >
<IntLM · (  x ) >
Þ ComLM
       
<ComL ProgL> = Prog'M
<<ComL ProgL> Arg > = <Prog'M Arg>  =  Res
 

 
<Scp  _____ __  IntLM  _ ___ _ ___ _ __ __ >
<Scp  __ | _  p _ ___ _ __ >
<  · · (  x ) >
Þ ComLM
 

 
<Scp  _____ _____ __ ____ _ ___ _ ___ _ __ __ __ >
<Scp  _____ __  int _ ___ _ ___ _ __ __ >
<Scp  __ | _  p _ ___ _ __ >
<  · · (  x ) >
Þ CoCom
       
<CoCom IntLM > = ComLM
<<CoCom IntLM > ProgL > = <ComLM ProgL>  =  Prog'M
<<<CoCom IntLM > ProgL > Arg > = <Prog'M Arg>  =  Res