2019-03-17 14:40:57 +02:00
< html >
< head >
< title > codegen < / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< meta http-equiv = "Content-Language" content = "en-gb" >
< link href = "inweb.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< / head >
< body >
< ul class = "crumbs" > < li > < a href = "../webs.html" > ★ < / a > < / li > < li > < b > codegen < / b > < / li > < / ul >
2019-08-28 12:35:44 +03:00
< p class = "purpose" > The code generation pipeline.< / p >
2019-03-17 14:40:57 +02:00
< hr >
< ul class = "chapterlist" >
< li >
< p > < a name = "1" > < / a > < spon class = "chaptertitle" > Chapter 1: Setting Up< / span > < / p >
2019-08-28 12:35:44 +03:00
< p > < span class = "purpose" > < / span > < / p >
2019-03-17 14:40:57 +02:00
< ul class = "sectionlist" >
< li >
< p > < a href = "1-cm.html" > < spon class = "sectiontitle" > Codegen Module< / span > < / a > -
< span class = "purpose" > Setting up the use of this module.< / span > < / p >
< / li >
< li >
2019-06-11 01:06:40 +03:00
< p > < a href = "1-stg.html" > < spon class = "sectiontitle" > Stages< / span > < / a > -
< span class = "purpose" > To create the stages through which code generation proceeds.< / span > < / p >
< / li >
2019-09-17 14:55:51 +03:00
< li >
< p > < a href = "1-arc.html" > < spon class = "sectiontitle" > Architecture< / span > < / a > -
< span class = "purpose" > To deal with multiple inter architectures.< / span > < / p >
< / li >
< li >
2020-01-28 00:51:46 +02:00
< p > < a href = "1-li.html" > < spon class = "sectiontitle" > Link Instructions< / span > < / a > -
< span class = "purpose" > Inter often needs to assimilate or otherwise deal with architecture-neutral kits of linkable material, and this is where such requirements are noted.< / span > < / p >
2019-09-17 14:55:51 +03:00
< / li >
2019-06-11 01:06:40 +03:00
< li >
< p > < a href = "1-ppl.html" > < spon class = "sectiontitle" > Pipelines< / span > < / a > -
< span class = "purpose" > To build and run through pipelines of code generation stages.< / span > < / p >
2019-03-17 14:40:57 +02:00
< / li >
< / ul >
< / li >
< li >
2019-06-28 20:25:50 +03:00
< p > < a name = "2" > < / a > < spon class = "chaptertitle" > Chapter 2: Miscellaneous Pipeline Stages< / span > < / p >
2019-03-17 14:40:57 +02:00
< p > < span class = "purpose" > < / span > < / p >
< ul class = "sectionlist" >
< li >
< p > < a href = "2-lnk.html" > < spon class = "sectiontitle" > Linker< / span > < / a > -
< span class = "purpose" > To link inter from I7 with template code.< / span > < / p >
< / li >
< li >
< p > < a href = "2-itr.html" > < spon class = "sectiontitle" > I6 Template Reader< / span > < / a > -
2020-01-10 01:10:09 +02:00
< span class = "purpose" > Inform 6 meta-language is the language used by template files (with extension |.i6t|); we need tp be able to read it here in order to assimilate template code.< / span > < / p >
2019-03-17 14:40:57 +02:00
< / li >
< li >
< p > < a href = "2-plm.html" > < spon class = "sectiontitle" > Parse Linked Matter< / span > < / a > -
< span class = "purpose" > To generate the initial state of storage for variables.< / span > < / p >
< / li >
< li >
< p > < a href = "2-rcc.html" > < spon class = "sectiontitle" > Resolving Conditional Compilation< / span > < / a > -
< span class = "purpose" > To generate the initial state of storage for variables.< / span > < / p >
< / li >
< li >
< p > < a href = "2-alm.html" > < spon class = "sectiontitle" > Assimilate Linked Matter< / span > < / a > -
2019-07-14 20:11:41 +03:00
< span class = "purpose" > To assimilate the material in parsed non-code splats.< / span > < / p >
2019-03-17 14:40:57 +02:00
< / li >
2019-04-09 18:09:53 +03:00
< li >
< p > < a href = "2-res.html" > < spon class = "sectiontitle" > Resolve External Symbols< / span > < / a > -
< span class = "purpose" > To make sure certain symbol names translate into globally unique target symbols.< / span > < / p >
< / li >
2019-08-31 15:56:36 +03:00
< li >
< p > < a href = "2-ip.html" > < spon class = "sectiontitle" > Inspect Plugs< / span > < / a > -
< span class = "purpose" > To make sure certain symbol names translate into globally unique target symbols.< / span > < / p >
< / li >
2019-03-17 14:40:57 +02:00
< li >
< p > < a href = "2-unq.html" > < spon class = "sectiontitle" > Uniqueness< / span > < / a > -
< span class = "purpose" > To make sure certain symbol names translate into globally unique target symbols.< / span > < / p >
< / li >
< li >
< p > < a href = "2-rv.html" > < spon class = "sectiontitle" > Reconcile Verbs< / span > < / a > -
< span class = "purpose" > To reconcile clashes between assimilated and originally generated verbs.< / span > < / p >
< / li >
< li >
< p > < a href = "2-erm.html" > < spon class = "sectiontitle" > Eliminate Redundant Matter< / span > < / a > -
2019-07-16 14:53:24 +03:00
< span class = "purpose" > To remove (for example) functions which we can prove will never be called or referred to as values.< / span > < / p >
2019-03-17 14:40:57 +02:00
< / li >
2019-06-11 02:38:15 +03:00
< li >
< p > < a href = "2-erl.html" > < spon class = "sectiontitle" > Eliminate Redundant Labels< / span > < / a > -
2019-06-11 21:12:34 +03:00
< span class = "purpose" > To remove labels which are defined but never jumped to.< / span > < / p >
2019-06-11 02:38:15 +03:00
< / li >
2019-03-17 14:40:57 +02:00
< / ul >
< / li >
< li >
2019-08-28 12:35:44 +03:00
< p > < a name = "3" > < / a > < spon class = "chaptertitle" > Chapter 3: Inter to Final Code< / span > < / p >
2019-04-27 02:19:28 +03:00
< p > < span class = "purpose" > < / span > < / p >
< ul class = "sectionlist" >
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "3-cg.html" > < spon class = "sectiontitle" > Code Generation< / span > < / a > -
2019-06-27 01:50:30 +03:00
< span class = "purpose" > To generate final code from intermediate code.< / span > < / p >
2019-03-17 14:40:57 +02:00
< / li >
2019-06-28 20:25:50 +03:00
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "3-fc.html" > < spon class = "sectiontitle" > Frame Control< / span > < / a > -
2019-06-28 20:25:50 +03:00
< span class = "purpose" > To manage the final-code process, at the frame level.< / span > < / p >
< / li >
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "3-cal.html" > < spon class = "sectiontitle" > Constants and Literals< / span > < / a > -
2019-06-28 20:25:50 +03:00
< span class = "purpose" > To generate final code for constants, including arrays.< / span > < / p >
< / li >
2019-03-17 14:40:57 +02:00
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "3-iap.html" > < spon class = "sectiontitle" > Instances and Properties< / span > < / a > -
2019-03-17 14:40:57 +02:00
< span class = "purpose" > To generate the initial state of storage for instances and their properties, and all associated metadata.< / span > < / p >
< / li >
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "3-vrb.html" > < spon class = "sectiontitle" > Variables< / span > < / a > -
2019-03-17 14:40:57 +02:00
< span class = "purpose" > To generate the initial state of storage for variables.< / span > < / p >
< / li >
2019-06-28 20:25:50 +03:00
< / ul >
< / li >
< li >
2019-08-28 12:35:44 +03:00
< p > < a name = "4" > < / a > < spon class = "chaptertitle" > Chapter 4: Final Code< / span > < / p >
2019-06-28 20:25:50 +03:00
< p > < span class = "purpose" > < / span > < / p >
< ul class = "sectionlist" >
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "4-ft.html" > < spon class = "sectiontitle" > Final Targets< / span > < / a > -
2019-06-28 20:25:50 +03:00
< span class = "purpose" > To create the range of possible targets into which Inter can be converted.< / span > < / p >
< / li >
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "4-fti.html" > < spon class = "sectiontitle" > Final Textual Inter< / span > < / a > -
2019-06-28 20:25:50 +03:00
< span class = "purpose" > To create the range of possible targets into which Inter can be converted.< / span > < / p >
< / li >
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "4-fbi.html" > < spon class = "sectiontitle" > Final Binary Inter< / span > < / a > -
2019-06-28 20:25:50 +03:00
< span class = "purpose" > To create the range of possible targets into which Inter can be converted.< / span > < / p >
< / li >
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "4-fi.html" > < spon class = "sectiontitle" > Final Inventory< / span > < / a > -
2019-06-28 20:25:50 +03:00
< span class = "purpose" > To print a summary of the contents of a repository.< / span > < / p >
< / li >
2019-06-27 01:50:30 +03:00
< li >
2019-08-28 12:35:44 +03:00
< p > < a href = "4-gi6.html" > < spon class = "sectiontitle" > Generating Inform 6< / span > < / a > -
2019-06-27 01:50:30 +03:00
< span class = "purpose" > To generate I6 code from intermediate code.< / span > < / p >
< / li >
2019-03-17 14:40:57 +02:00
< / ul >
< / li >
< / ul >
< hr >
< / body >
< / html >