{"schema":"https://ver.cy/schemas/card/1.0.0","id":"vr.tr.compiler","code":"thing-q47506","url":"https://ver.cy/models/thing/q47506/","name":"compiler","alternateNames":["Pawno","just-in-time compilation","optimizing compiler","cross compiler","source-to-source compiler","Java compiler","just-in-time compiler","aspect weaver","lexical analyzer generator","ahead-of-time compiler","self-hosting compiler","Incremental compiler"],"kind":"thing","status":"published","version":"0.2.0-wave.4","language":"en","classifiers":{"family":"Thing Registry","category":"Physical world and living systems","entryKind":"thing","plane":"PHY","domain":["PHY.OBJ"],"industry":[],"navPath":"","tags":[],"facets":{}},"whatItIs":"A computer program that translates source code written in one programming language into another form, typically machine code, bytecode or another high-level language, through stages such as lexing, parsing, semantic analysis, optimisation and code generation, with kinds the registry aliases name including optimising compilers, cross compilers that produce code for a different platform, source-to-source compilers or transpilers, just-in-time compilation that compiles during execution, Java compilers producing bytecode, and Pawno, an editor bundled with a Pawn compiler used for SA-MP game server scripts; early milestones include Grace Hopper s A-0 system of 1952 and the FORTRAN compiler released by IBM in 1957. The registry classifies software as a physical object, which is questionable.","purpose":"Let an agent explain compilers, relay architecture, kinds, history and notable examples from computer science sources, describe the named kinds and tools, and distinguish compilers from interpreters, assemblers, linkers and build tools.","scope":{"in":[],"out":[],"boundaries":[]},"distinguishingFeatures":["Front end and back end","Intermediate representations","Optimisation passes","Ahead-of-time or just-in-time"],"structure":{"bundles":[{"id":"understand","name":"Understand","description":"What a compiler is.","layers":[{"id":"definition","name":"Definition","description":"Definition.","findings":[{"id":"definition-finding","name":"Definition","description":"Definition.","questions":[{"text":"What is a compiler, and how does it differ from interpreters, assemblers, linkers and build tools?","kind":"definition"},{"text":"Is the question about using a specific compiler, whose current documentation should be checked?","kind":"boundary"}]}]},{"id":"kinds","name":"Kinds","description":"Named kinds.","findings":[{"id":"kinds-finding","name":"Kinds","description":"Kinds.","questions":[{"text":"What are optimising, cross, source-to-source, JIT and Java compilers, and what is Pawno?","kind":"definition"},{"text":"Which entry fits the specific compiler?","kind":"action"}]}]}]},{"id":"architecture","name":"Architecture","description":"Architecture.","layers":[{"id":"stages","name":"Stages","description":"Compilation stages.","findings":[{"id":"stages-finding","name":"Stages","description":"Stages.","questions":[{"text":"What happens in lexing, parsing, semantic analysis, optimisation and code generation?","kind":"provenance"},{"text":"Which references are standard?","kind":"provenance"}]}]},{"id":"ir","name":"IR","description":"Intermediate representations.","findings":[{"id":"ir-finding","name":"IR","description":"IR.","questions":[{"text":"How do intermediate representations such as LLVM IR work?","kind":"provenance"},{"text":"Which sources are cited?","kind":"provenance"}]}]}]},{"id":"history","name":"History","description":"History.","layers":[{"id":"early","name":"Early compilers","description":"Early compilers.","findings":[{"id":"early-finding","name":"Early compilers","description":"Early compilers.","questions":[{"text":"How did Hopper s A-0 and Backus s FORTRAN team shape compilers?","kind":"provenance"},{"text":"Which entry fits FORTRAN?","kind":"action"}]}]},{"id":"open","name":"Open source","description":"Open-source toolchains.","findings":[{"id":"open-finding","name":"Open source","description":"Open source.","questions":[{"text":"How did GCC and LLVM change compiler development?","kind":"provenance"},{"text":"Which entry fits LLVM?","kind":"action"}]}]}]},{"id":"context","name":"Context","description":"Security.","layers":[{"id":"trust","name":"Trusting trust","description":"Toolchain security.","findings":[{"id":"trust-finding","name":"Trusting trust","description":"Trusting trust.","questions":[{"text":"What did Ken Thompson s Reflections on Trusting Trust argue, and how do reproducible builds respond?","kind":"provenance"},{"text":"Is the presentation neutral and attributed?","kind":"boundary"}]}]},{"id":"jit","name":"JIT","description":"Just-in-time compilation.","findings":[{"id":"jit-finding","name":"JIT","description":"JIT.","questions":[{"text":"How do JIT compilers in Java and JavaScript engines optimise at run time?","kind":"provenance"},{"text":"Is the information current?","kind":"boundary"}]}]}]}]},"agentConduct":{"may":["Use compilers to build software it is authorised to build.","Report compiler warnings and errors clearly to developers.","Verify toolchain integrity using signed releases or checksums."],"mustNot":["Install toolchains from untrusted sources.","Tamper with a compiler to insert hidden behaviour into built software.","Ignore warnings about undefined behaviour in safety-critical code.","Disable security hardening options without the developer's decision."],"requiresHuman":["Changing the toolchain used to build safety-critical or widely distributed software."]},"ethics":{"considerations":["Toolchain compromises can affect every program built with them.","Miscompilation in safety-critical software can cause real harm."],"affectedParties":["Software users","Developers"]},"owners":{"steward":"Each compiler's maintainers; each project answers for the toolchain it uses.","roles":[],"masterSystems":[]},"relations":[{"target":"Q114900488","type":"parent","note":"registry parent class"},{"target":"Q4117406","type":"parent","note":"registry parent class"},{"target":"implementation of a programming language","type":"related","note":"in registry terms"},{"target":"GNU Compiler Collection","type":"related"},{"target":"interpreter","type":"related"},{"target":"linker","type":"related"}],"interaction":{"identity":{"applicability":"required","items":["Vercy registry: vr.tr.compiler","Wikidata: Q47506 (https://www.wikidata.org/wiki/Q47506)"]},"properties":{"applicability":"required","items":["A-0 System: 1952 year - Grace Hopper","FORTRAN compiler: 1957 year - IBM","GCC first release: 1987 year"]},"recognition":{"applicability":"required","items":["Program translating source code","Pawno, just-in-time compilation, optimizing compiler, cross compiler, source-to-source compiler, Java compiler","Interpreters execute directly; assemblers translate assembly; linkers combine object files; build tools orchestrate compilation","Not a physical object; command-line tools and integrated development environment components."]},"capabilities":{"applicability":"required","items":["explain architecture and stages","relay kinds","describe named tools","relay history"]},"hazards":{"applicability":"required","items":["Compiler bugs causing miscompilation","Supply chain attacks on toolchains","Undefined behaviour exploited by optimisers"]},"interfaces":{"applicability":"required","items":["Language standards such as ISO C and C++","Safety-critical compiler qualification such as DO-178C tool qualification"]},"context":{"applicability":"required","items":["Translating programs into executable or other forms.","ahead-of-time compilers","just-in-time compilers","cross compilers","source-to-source compilers","bytecode compilers"]}},"sources":[{"title":"Wikidata item Q47506: compiler","url":"https://www.wikidata.org/wiki/Q47506","note":"identity and sense of the item"},{"title":"Wikipedia: Compiler","url":"https://en.wikipedia.org/wiki/Compiler","note":"general description of the item"}],"openQuestions":["Is the registry classification of compilers as physical objects appropriate?","Should Pawno be moved to game modding tool entries?","Should JIT compilation be a separate entry?"],"resources":{"spec":"/models/things/publications/thing-q47506/spec.json"},"provenance":{"origin":"thing registry research (pass 2)","builtFrom":["models/things/publications/thing-q47506/spec.json"],"providers":["Claude"],"researchStatus":"unreviewed","generatedAt":"2026-09-14T00:54:02Z","builder":"tools/build_cards.py@1.0.0"},"completeness":{"sections":{"classifiers":"filled","whatItIs":"filled","purpose":"filled","distinguishingFeatures":"filled","structure":"filled","agentConduct":"filled","ethics":"filled","owners":"filled","relations":"filled","interaction.identity":"filled","interaction.properties":"filled","interaction.recognition":"filled","interaction.capabilities":"filled","interaction.hazards":"filled","interaction.interfaces":"filled","interaction.context":"filled","sources":"filled"},"notes":{"_gate":"Published through the thing publication gate 1.0 on 2026-10-06T19:52:00+00:00: completeness 1.00; sense: Wikidata description; 2 live sources; review by codex: pass"},"score":1.0}}