{
  "vercy": "1.0-draft",
  "publication": {
    "status": "research-draft",
    "adjudicationStatus": "unreviewed",
    "publishableCanonical": false,
    "generatedAt": "2026-09-14T00:54:02Z",
    "providers": [
      "Claude"
    ],
    "breadth": "written by Claude from model knowledge without web access - no source was read, every claim is a lead to verify",
    "pass": 2,
    "wave": 4,
    "engine": "claude",
    "enrichment": {
      "pass": 3,
      "engine": "claude",
      "producedAt": "2026-10-06T12:00:00Z",
      "ingestedAt": "2026-10-06T07:45:05+00:00",
      "fields": [
        "agent_conduct",
        "ethics",
        "owners"
      ]
    },
    "gate": {
      "passed": true,
      "version": "1.0",
      "at": "2026-10-06T19:52:00+00:00",
      "evidence": [
        "completeness 1.00",
        "sense: Wikidata description",
        "2 live sources",
        "review by codex: pass"
      ]
    }
  },
  "metaModel": {
    "id": "THING-Q47506",
    "registryId": "vr.tr.compiler",
    "name": "compiler",
    "version": "0.2.0-wave.4",
    "entryKind": "thing",
    "family": "Thing Registry",
    "domain": [
      "PHY.OBJ"
    ],
    "status": "research-draft"
  },
  "canonicalUrl": "https://ver.cy/models/thing/q47506/",
  "model": {
    "registry_id": "vr.tr.compiler",
    "name": "compiler",
    "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.",
    "definition": "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.",
    "affordances": [
      "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"
    ],
    "appearance": "Not a physical object; command-line tools and integrated development environment components.",
    "visual_identification": [
      "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"
    ],
    "physical_properties": [
      {
        "quantity": "A-0 System",
        "typical_range": "1952",
        "unit": "year",
        "note": "Grace Hopper"
      },
      {
        "quantity": "FORTRAN compiler",
        "typical_range": "1957",
        "unit": "year",
        "note": "IBM"
      },
      {
        "quantity": "GCC first release",
        "typical_range": "1987",
        "unit": "year",
        "note": ""
      }
    ],
    "families_and_kinds": [
      "ahead-of-time compilers",
      "just-in-time compilers",
      "cross compilers",
      "source-to-source compilers",
      "bytecode compilers"
    ],
    "related_models": [
      {
        "relation": "is a kind of",
        "target": "implementation of a programming language",
        "why": "in registry terms"
      },
      {
        "relation": "includes",
        "target": "GNU Compiler Collection",
        "why": ""
      },
      {
        "relation": "is contrasted with",
        "target": "interpreter",
        "why": ""
      },
      {
        "relation": "is contrasted with",
        "target": "linker",
        "why": ""
      }
    ],
    "identifiers": [],
    "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"
    ],
    "in_scope": [],
    "out_of_scope": [],
    "characteristics": [],
    "agent_conduct": {
      "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."
      ],
      "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."
      ],
      "requires_human": [
        "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."
      ],
      "affected_parties": [
        "Software users",
        "Developers"
      ]
    },
    "owners": {
      "steward": "Each compiler's maintainers; each project answers for the toolchain it uses.",
      "master_systems": []
    }
  },
  "sources": [
    {
      "id": "wikidata",
      "title": "Wikidata item Q47506: compiler",
      "url": "https://www.wikidata.org/wiki/Q47506",
      "url_status": "live",
      "what_it_supports": "identity and sense of the item",
      "checked_by": "wikidata-api"
    },
    {
      "id": "wikipedia-en",
      "title": "Wikipedia: Compiler",
      "url": "https://en.wikipedia.org/wiki/Compiler",
      "url_status": "live",
      "what_it_supports": "general description of the item",
      "checked_by": "wikidata-api sitelink"
    }
  ],
  "structure": {
    "bundles": [
      {
        "id": "understand",
        "name": "Understand",
        "description": "What a compiler is.",
        "rationale": "Definition.",
        "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.",
        "rationale": "Science.",
        "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.",
        "rationale": "Sources.",
        "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.",
        "rationale": "Attribution.",
        "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"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "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?"
  ],
  "statistics": {
    "bundles": 4,
    "layers": 8,
    "findings": 8,
    "questions": 16
  }
}
