compiler
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.
Bundle → Layer → Finding → Questions Filled
4 bundles · 8 layers · 8 findings · 16 questions
Understand What a compiler is.
Definition
Definition.
Definition
Definition.
- What is a compiler, and how does it differ from interpreters, assemblers, linkers and build tools? definition
- Is the question about using a specific compiler, whose current documentation should be checked? boundary
Kinds
Named kinds.
Kinds
Kinds.
- What are optimising, cross, source-to-source, JIT and Java compilers, and what is Pawno? definition
- Which entry fits the specific compiler? action
Architecture Architecture.
Stages
Compilation stages.
Stages
Stages.
- What happens in lexing, parsing, semantic analysis, optimisation and code generation? provenance
- Which references are standard? provenance
IR
Intermediate representations.
IR
IR.
- How do intermediate representations such as LLVM IR work? provenance
- Which sources are cited? provenance
History History.
Early compilers
Early compilers.
Early compilers
Early compilers.
- How did Hopper s A-0 and Backus s FORTRAN team shape compilers? provenance
- Which entry fits FORTRAN? action
Open source
Open-source toolchains.
Open source
Open source.
- How did GCC and LLVM change compiler development? provenance
- Which entry fits LLVM? action
Context Security.
Trusting trust
Toolchain security.
Trusting trust
Trusting trust.
- What did Ken Thompson s Reflections on Trusting Trust argue, and how do reproducible builds respond? provenance
- Is the presentation neutral and attributed? boundary
JIT
Just-in-time compilation.
JIT
JIT.
- How do JIT compilers in Java and JavaScript engines optimise at run time? provenance
- Is the information current? boundary
Classifiers Filled
- Family
- Thing Registry
- Category
- Physical world and living systems
- Entry kind
- thing
- Plane
- PHY
- Domain
- PHY.OBJ
- Other names and narrower kinds
- 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
What it is Filled
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.
Why it exists Filled
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.
Distinguishing features Filled
- Front end and back end
- Intermediate representations
- Optimisation passes
- Ahead-of-time or just-in-time
What robots and AI may and may not do Filled
Must not
- 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.
Only with a human decision
- Changing the toolchain used to build safety-critical or widely distributed software.
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.
Moral aspects Filled
- Toolchain compromises can affect every program built with them.
- Miscompilation in safety-critical software can cause real harm.
Who is affected
- Software users
- Developers
Owners Filled
Steward
Each compiler's maintainers; each project answers for the toolchain it uses.
Links to other meta-models Filled
parent
- Q114900488 - registry parent class
- Q4117406 - registry parent class
related
- implementation of a programming language - in registry terms
- GNU Compiler Collection
- interpreter
- linker
What else AI and robots need to interact with it Filled
Identity and identifiers required Filled
- Vercy registry: vr.tr.compiler
- Wikidata: Q47506 (https://www.wikidata.org/wiki/Q47506)
Direct properties required Filled
- A-0 System: 1952 year - Grace Hopper
- FORTRAN compiler: 1957 year - IBM
- GCC first release: 1987 year
Recognition required Filled
- 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 and actions required Filled
- explain architecture and stages
- relay kinds
- describe named tools
- relay history
Hazards and failure modes required Filled
- Compiler bugs causing miscompilation
- Supply chain attacks on toolchains
- Undefined behaviour exploited by optimisers
Standards and interfaces required Filled
- Language standards such as ISO C and C++
- Safety-critical compiler qualification such as DO-178C tool qualification
Context of use required Filled
- Translating programs into executable or other forms.
- ahead-of-time compilers
- just-in-time compilers
- cross compilers
- source-to-source compilers
- bytecode compilers
Sources Filled
- Wikidata item Q47506: compiler - identity and sense of the item
- Wikipedia: Compiler - general description of the item
Open questions
- 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?
Machine files
Provenance
thing registry research (pass 2) · unreviewed
Built from: models/things/publications/thing-q47506/spec.json