← Back to catalogue
Research draft

compiler

vr.tr.compiler · PHY.OBJ

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.

Thing Registry Physical world and living systems

Research draft, second pass

A second pass drafted this model: the structure a model of this thing needs, and what is known about it in the world. The line under this one says how the second half was obtained - researched against sources, or recalled without web access, in which case nothing here was read anywhere and every claim is a lead to verify. Unreviewed either way.

written by Claude from model knowledge without web access - no source was read, every claim is a lead to verify

Researched by: Claude

Purpose and description

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.

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.

What it is for: Translating programs into executable or other forms.

It can be explain architecture and stages; relay kinds; describe named tools; relay history.

Distinguishing features

Front end and back end

Intermediate representations

Optimisation passes

Ahead-of-time or just-in-time

What it looks like

Not a physical object; command-line tools and integrated development environment components.

Physical character

A-0 System: 1952 year - Grace Hopper

FORTRAN compiler: 1957 year - IBM

GCC first release: 1987 year

How it is recognised

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

Related models

is a kind of - in registry terms

implementation of a programming language

includes -

GNU Compiler Collection

is contrasted with -

interpreter

is contrasted with -

linker

In practice

Families and kinds

ahead-of-time compilers

just-in-time compilers

cross compilers

source-to-source compilers

bytecode compilers

Standards and regulation

Language standards such as ISO C and C++

Safety-critical compiler qualification such as DO-178C tool qualification

Failure modes and hazards

Compiler bugs causing miscompilation

Supply chain attacks on toolchains

Undefined behaviour exploited by optimisers

Also called

Pawnojust-in-time compilationoptimizing compilercross compilersource-to-source compilerJava compilerjust-in-time compileraspect weaverlexical analyzer generatorahead-of-time compilerself-hosting compilerIncremental compilerMulti-pass compilerRetargetingOne-pass compilerbootstrappingTemccompile-and-go systemtracing just-in-time compilation

Where this came from

wikidata · CC0 1.0

Also registered as vr.tr.compiler

Drafted structure

Bundle to layer to finding to question, as the second pass will find it: 4 bundles · 8 layers · 8 findings · 16 questions.

Understand What a compiler is.

Definition.

Definition

Definition.

Definition

Definition.

  1. What is a compiler, and how does it differ from interpreters, assemblers, linkers and build tools? definition
  2. Is the question about using a specific compiler, whose current documentation should be checked? boundary

Kinds

Named kinds.

Kinds

Kinds.

  1. What are optimising, cross, source-to-source, JIT and Java compilers, and what is Pawno? definition
  2. Which entry fits the specific compiler? action
Architecture Architecture.

Science.

Stages

Compilation stages.

Stages

Stages.

  1. What happens in lexing, parsing, semantic analysis, optimisation and code generation? provenance
  2. Which references are standard? provenance

IR

Intermediate representations.

IR

IR.

  1. How do intermediate representations such as LLVM IR work? provenance
  2. Which sources are cited? provenance
History History.

Sources.

Early compilers

Early compilers.

Early compilers

Early compilers.

  1. How did Hopper s A-0 and Backus s FORTRAN team shape compilers? provenance
  2. Which entry fits FORTRAN? action

Open source

Open-source toolchains.

Open source

Open source.

  1. How did GCC and LLVM change compiler development? provenance
  2. Which entry fits LLVM? action
Context Security.

Attribution.

Trusting trust

Toolchain security.

Trusting trust

Trusting trust.

  1. What did Ken Thompson s Reflections on Trusting Trust argue, and how do reproducible builds respond? provenance
  2. Is the presentation neutral and attributed? boundary

JIT

Just-in-time compilation.

JIT

JIT.

  1. How do JIT compilers in Java and JavaScript engines optimise at run time? provenance
  2. Is the information current? boundary

What the second pass must settle

  • 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?