The modules of the Elan Programming Environment are:
- The <#7882#>monitor<#7882#>, acting as a command interpreter, provides
most of the user interface and invokes all other modules.
- The <#7883#>translator<#7883#> accepts input of definitions, translates
them to internal form and stores them into memory.
- The <#7884#>lister<#7884#> provides a structured overview of the
defined names and their definitions.
- The <#7885#>editor<#7885#> takes care of all text input, for example
when entering or editing a definition.
- The <#7886#>checker<#7886#> performs the checking of some static
properties of the program prior to its execution.
- The <#7887#>executor<#7887#> executes checked programs.
The relationship between these modules is displayed in the following figure:
(315,180)<#8151#>
(000,170)<#8115#>modules<#8115#>
261
(155,150)<#7890#>(70,20)<#7890#>
(120,150)<#8142#>
<#8116#>(070,010)<#7892#>monitor<#7892#><#8116#><#8142#>
(140,140)<#8117#>(-2,-1)<#7893#>20<#7893#><#8117#>
(150,140)<#8118#>(-1,-1)<#7894#>20<#7894#><#8118#>
(160,140)<#8119#>(1,-1)<#7895#>20<#7895#><#8119#>
(170,140)<#8120#>(2,-1)<#7896#>20<#7896#><#8120#>
262
(035,100)<#7897#>(70,20)<#7897#>
(000,100)<#8143#>
<#8121#>(070,010)<#7899#>editor<#7899#><#8121#><#8143#>
(055,090)<#8122#>(0,-1)<#7900#>20<#7900#><#8122#>
263
(115,100)<#7901#>(70,20)<#7901#>
(080,100)<#8144#>
<#8123#>(070,010)<#7903#>lister<#7903#><#8123#><#8144#>
(080,100)<#8124#>(-1,0)<#7904#>10<#7904#><#8124#>
264
(195,100)<#7905#>(70,20)<#7905#>
(160,100)<#8145#>
<#8125#>(070,010)<#7907#>checker<#7907#><#8125#><#8145#>
(215,090)<#8126#>(0,-1)<#7908#>20<#7908#><#8126#>
265
(075,060)<#7909#>(70,20)<#7909#>
(040,060)<#8146#>
<#8127#>(070,010)<#7911#>translator<#7911#><#8127#><#8146#>
(110,060)<#8128#>(1,0)<#7912#>10<#7912#><#8128#>
266
(235,060)<#7913#>(70,20)<#7913#>
(200,060)<#8147#>
<#8129#>(070,010)<#7915#>executor<#7915#><#8129#><#8147#>
(255,050)<#8130#>(0,-1)<#7916#>20<#7916#><#8130#>
267
(155,060)<#7917#>(70,20)[t]<#7917#>
(120,060)<#8131#>(0,-1)<#7918#>50<#7918#><#8131#>
(190,060)<#8132#>(0,-1)<#7919#>50<#7919#><#8132#>
(155,010)<#7920#>(70,20)[b]<#7920#>
(120,060)<#8148#>
<#8133#>(070,010)<#7922#>memory<#7922#><#8133#><#8148#>
(135,070)<#8134#>(0,1)<#7923#>20<#7923#><#8134#>
(175,070)<#8135#>(0,1)<#7924#>20<#7924#><#8135#>
(145,045)<#8136#> (1,-1)<#7925#>030<#7925#><#8136#>
(155,035)<#8137#> (-1,-1)<#7926#>020<#7926#><#8137#>
(145,025)<#8138#> (1,-1)<#7927#>010<#7927#><#8138#>
268
(020,025)<#8149#>
<#8139#>(070,010)<#7929#>program<#7929#><#8139#><#8149#>
(055,030)<#8140#>(0,1)<#7930#>20<#7930#><#8140#>
269
(220,025)<#8150#>
<#8141#>(070,010)<#7932#>results<#7932#><#8141#><#8150#>
270
<#8151#>