Skip to main content

Compiler Ontology

Programming
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — COMPILER ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/programming/compiler-ontology.html

FLOW COMPILER_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Programming"
    ONTOLOGY = "Compiler Ontology"
    PURPOSE = "Formalise compiler components, source-language processing, intermediate representations, semantic analysis, optimisation, code generation, diagnostics and compilation relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    COMPILER
    COMPILER_FRONT_END
    COMPILER_MIDDLE_END
    COMPILER_BACK_END
    SOURCE_LANGUAGE
    TARGET_LANGUAGE
    SOURCE_CODE
    SOURCE_FILE
    TOKEN
    LEXEME
    LEXER
    LEXICAL_ANALYSIS
    PARSER
    PARSING
    GRAMMAR
    ABSTRACT_SYNTAX_TREE
    AST_NODE
    SEMANTIC_ANALYSIS
    SYMBOL
    SYMBOL_TABLE
    IDENTIFIER
    SCOPE
    NAMESPACE
    BINDING
    TYPE
    TYPE_SYSTEM
    TYPE_CHECKING
    TYPE_INFERENCE
    INTERMEDIATE_REPRESENTATION
    IR
    CONTROL_FLOW_GRAPH
    BASIC_BLOCK
    DATA_FLOW
    STATIC_SINGLE_ASSIGNMENT
    SSA
    OPTIMISATION
    LOCAL_OPTIMISATION
    GLOBAL_OPTIMISATION
    LOOP_OPTIMISATION
    DEAD_CODE_ELIMINATION
    CONSTANT_FOLDING
    CONSTANT_PROPAGATION
    INLINING
    COMMON_SUBEXPRESSION_ELIMINATION
    REGISTER_ALLOCATION
    INSTRUCTION_SELECTION
    INSTRUCTION_SCHEDULING
    CODE_GENERATION
    TARGET_ARCHITECTURE
    ASSEMBLY_CODE
    MACHINE_CODE
    OBJECT_CODE
    OBJECT_FILE
    DEBUG_INFORMATION
    DIAGNOSTIC
    WARNING
    ERROR
    SYNTAX_ERROR
    SEMANTIC_ERROR
    TYPE_ERROR
    COMPILATION_UNIT
    BUILD
    LINKER
    LIBRARY
    DEPENDENCY
    COMPILER_FLAG
    OPTIMISATION_LEVEL
    TOOLCHAIN
    ABI
    VERSION
    LANGUAGE_VERSION
    CONFIGURATION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    COMPILES
    COMPILES_TO
    TARGETS
    TOKENISES
    PARSES
    PRODUCES
    TRANSFORMS
    ANALYSES
    DEFINES
    DECLARES
    REFERENCES
    RESOLVES_TO
    BINDS_TO
    HAS_TYPE
    CHECKS_TYPE
    LOWERS_TO
    OPTIMISES
    ELIMINATES
    FOLDS
    PROPAGATES
    INLINES
    SELECTS_INSTRUCTION
    ALLOCATES_REGISTER
    SCHEDULES_INSTRUCTION
    GENERATES
    EMITS
    REPORTS
    HAS_WARNING
    HAS_ERROR
    USES_GRAMMAR
    USES_IR
    USES_ABI
    HAS_FLAG
    HAS_OPTIMISATION_LEVEL
    HAS_VERSION
    HAS_CONFIGURATION
    DEPENDS_ON
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    MAPS_TO
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    SOURCE_CODE
    SOURCE_FILES
    LANGUAGE_SPECIFICATIONS
    LANGUAGE_VERSION_DATA
    GRAMMAR_DEFINITIONS
    TYPE_DEFINITIONS
    SYMBOL_DATA
    COMPILER_CONFIGURATION
    COMPILER_FLAGS
    OPTIMISATION_LEVELS
    TARGET_ARCHITECTURE_DATA
    ABI_DATA
    INTERMEDIATE_REPRESENTATIONS
    COMPILER_TRACES
    DIAGNOSTICS
    OBJECT_FILES
    VERSION_DATA
    TOOLCHAIN_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_COMPILER_IDENTIFIERS
    NORMALISE_COMPILER_NAMES
    NORMALISE_COMPILER_VERSIONS
    NORMALISE_LANGUAGE_NAMES
    NORMALISE_LANGUAGE_VERSIONS
    NORMALISE_TARGET_ARCHITECTURES
    NORMALISE_ABI_NAMES
    NORMALISE_COMPILER_FLAGS
    NORMALISE_OPTIMISATION_LEVELS
    NORMALISE_SYMBOL_IDENTIFIERS
    NORMALISE_TYPE_NAMES
    NORMALISE_IR_NAMES
    NORMALISE_DIAGNOSTIC_TYPES
    RESOLVE_COMPILER_AND_SYMBOL_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS COMPILATION_PIPELINE {
    SOURCE_CODE
      -> LEXICAL_ANALYSIS
      -> PARSING
      -> ABSTRACT_SYNTAX_TREE
      -> SEMANTIC_ANALYSIS
      -> INTERMEDIATE_REPRESENTATION
      -> OPTIMISATION
      -> CODE_GENERATION
      -> ASSEMBLY_OR_OBJECT_CODE
      -> OUTPUT_ARTIFACT
  }

  PROCESS LEXICAL_REASONING {
    SOURCE_TEXT
      -> CHARACTER_STREAM

    CHARACTER_STREAM
      -> LEXER

    LEXER
      -> TOKEN_STREAM

    INVALID_LEXEME
      -> LEXICAL_DIAGNOSTIC
  }

  PROCESS PARSING_REASONING {
    TOKEN_STREAM + GRAMMAR
      -> PARSER

    PARSER
      -> PARSE_STRUCTURE

    VALID_STRUCTURE
      -> ABSTRACT_SYNTAX_TREE

    INVALID_STRUCTURE
      -> SYNTAX_ERROR
  }

  PROCESS SEMANTIC_REASONING {
    ABSTRACT_SYNTAX_TREE
      -> SCOPE_AND_SYMBOL_ANALYSIS

    SCOPE_AND_SYMBOL_ANALYSIS
      -> SYMBOL_BINDINGS

    SYMBOL_BINDINGS
      -> TYPE_ANALYSIS

    TYPE_ANALYSIS
      -> VALID_TYPED_TREE
      OR -> SEMANTIC_OR_TYPE_ERROR
  }

  PROCESS IR_REASONING {
    VALID_TYPED_TREE
      -> IR_GENERATION

    IR_GENERATION
      -> INTERMEDIATE_REPRESENTATION

    INTERMEDIATE_REPRESENTATION
      -> CONTROL_FLOW_GRAPH
      -> DATA_FLOW_RELATIONS

    OPTIONAL
      -> SSA_TRANSFORMATION
  }

  PROCESS OPTIMISATION_REASONING {
    INTERMEDIATE_REPRESENTATION
      -> OPTIMISATION_PASSES

    OPTIMISATION_PASSES
      -> CONSTANT_FOLDING
      -> CONSTANT_PROPAGATION
      -> DEAD_CODE_ELIMINATION
      -> INLINING
      -> LOOP_OPTIMISATION
      -> COMMON_SUBEXPRESSION_ELIMINATION

    OPTIMISED_IR
      -> SEMANTIC_PRESERVATION_CHECK
  }

  PROCESS CODE_GENERATION_REASONING {
    OPTIMISED_OR_UNOPTIMISED_IR
      -> INSTRUCTION_SELECTION

    INSTRUCTION_SELECTION
      -> TARGET_INSTRUCTIONS

    TARGET_INSTRUCTIONS
      -> REGISTER_ALLOCATION

    REGISTER_ALLOCATION
      -> INSTRUCTION_SCHEDULING

    INSTRUCTION_SCHEDULING
      -> ASSEMBLY_OR_MACHINE_CODE

    OUTPUT
      -> OBJECT_FILE
  }

  PROCESS DIAGNOSTIC_REASONING {
    COMPILATION_STAGE
      -> DETECTED_ISSUE

    DETECTED_ISSUE
      -> ERROR_OR_WARNING

    ERROR_OR_WARNING
      -> SOURCE_LOCATION
      -> DIAGNOSTIC_MESSAGE
      -> RELATED_CONTEXT

    FATAL_ERROR
      -> COMPILATION_FAILURE
  }

  PROCESS TARGET_REASONING {
    SOURCE_PROGRAM + TARGET_ARCHITECTURE + ABI
      -> TARGET_CONFIGURATION

    TARGET_CONFIGURATION
      -> DATA_LAYOUT
      -> CALLING_CONVENTION
      -> INSTRUCTION_SET
      -> REGISTER_MODEL

    TARGET_CONFIGURATION
      -> CODE_GENERATION_CONSTRAINTS
  }

  RULES {
    IF SOURCE_CODE_IS_COMPILED
    THEN REQUIRE {
      SOURCE_LANGUAGE
      LANGUAGE_VERSION_OR_DIALECT
      COMPILER_VERSION
      TARGET_CONTEXT
      CONFIGURATION
    }

    IF IDENTIFIER_IS_REFERENCED
    THEN REQUIRE SYMBOL_AND_SCOPE_RESOLUTION

    IF OPTIMISATION_TRANSFORMS_IR
    THEN PRESERVE_REQUIRED_PROGRAM_SEMANTICS

    IF COMPILATION_SUCCEEDS
    THEN DO_NOT_AUTOMATICALLY_ASSERT PROGRAM_CORRECTNESS

    IF WARNING_IS_EMITTED
    THEN DO_NOT_AUTOMATICALLY_ASSERT COMPILATION_FAILURE

    IF SAME_SOURCE_IS_COMPILED_WITH_DIFFERENT_FLAGS
    THEN PRESERVE_CONFIGURATION_DIFFERENCE

    IF TARGET_ARCHITECTURE_DIFFERS
    THEN DO_NOT_ASSUME_IDENTICAL_GENERATED_CODE

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND COMPILER_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        COMPILER_VERSION_CERTAINTY,
        LANGUAGE_VERSION_CERTAINTY,
        CONFIGURATION_CERTAINTY,
        TARGET_CERTAINTY,
        SYMBOL_RESOLUTION_COMPLETENESS,
        IR_TRACE_COMPLETENESS,
        DIAGNOSTIC_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF COMPILER_FLAGS_OR_TARGET_ARE_UNKNOWN
    THEN REDUCE_OUTPUT_INFERENCE_CONFIDENCE

    IF OPTIMISATION_PIPELINE_IS_UNKNOWN
    THEN REDUCE_TRANSFORMATION_INFERENCE_CONFIDENCE

    IF REPRODUCIBLE_BUILD_CONFIRMS_OUTPUT
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        COMPILER_IDENTIFIER,
        COMPILER_VERSION,
        SOURCE_LANGUAGE_VERSION,
        TARGET_ARCHITECTURE,
        ABI,
        CONFIGURATION
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    COMPILER != PROGRAMMING_LANGUAGE
    SOURCE_CODE != OBJECT_CODE
    TOKEN_STREAM != ABSTRACT_SYNTAX_TREE
    SYNTAX_ERROR != SEMANTIC_ERROR
    SYMBOL != IDENTIFIER_TEXT_ALONE
    IR != MACHINE_CODE
    OPTIMISATION != SEMANTIC_CHANGE_WHEN_CORRECTLY_APPLIED
    COMPILATION_SUCCESS != PROGRAM_CORRECTNESS
    WARNING != ERROR
    OBJECT_FILE != FINAL_EXECUTABLE_IN_ALL_BUILD_MODELS
    SAME_SOURCE != SAME_BINARY_WITH_DIFFERENT_COMPILERS_OR_FLAGS
    COMPILER_VERSION_AFFECTS_GENERATED_OUTPUT
    TARGET_ARCHITECTURE_AND_ABI_AFFECT_CODE_GENERATION
    BUILD_CONFIGURATION_AFFECTS_OUTPUT
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_COMPILER_IDENTIFIER
    CHECK_COMPILER_VERSION
    CHECK_SOURCE_LANGUAGE
    CHECK_LANGUAGE_VERSION
    CHECK_LEXICAL_STRUCTURE
    CHECK_PARSE_STRUCTURE
    CHECK_SYMBOL_BINDINGS
    CHECK_TYPE_RELATIONS
    CHECK_IR_RELATIONS
    CHECK_OPTIMISATION_RELATIONS
    CHECK_TARGET_ARCHITECTURE
    CHECK_ABI
    CHECK_CODE_GENERATION
    CHECK_DIAGNOSTICS
    CHECK_COMPILER_FLAGS
    CHECK_CONFIGURATION
    CHECK_OUTPUT_ARTIFACT
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_COMPILER_ENTITIES
    LEXICAL_RELATIONS
    PARSE_RELATIONS
    ABSTRACT_SYNTAX_RELATIONS
    SYMBOL_BINDINGS
    TYPE_RELATIONS
    INTERMEDIATE_REPRESENTATION_RELATIONS
    CONTROL_AND_DATA_FLOW_RELATIONS
    OPTIMISATION_RELATIONS
    TARGET_RELATIONS
    CODE_GENERATION_RELATIONS
    OBJECT_CODE_RELATIONS
    DIAGNOSTIC_RELATIONS
    COMPILATION_TRACES
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON SOURCE_CONFIGURATION_OR_TARGET_CHANGE {
      NORMALISE
      REPROCESS_LEXICAL_AND_PARSE_STAGES
      RESOLVE_SYMBOLS
      RECHECK_TYPES
      REGENERATE_IR
      REAPPLY_OPTIMISATION_PIPELINE
      REGENERATE_TARGET_CODE
      UPDATE_DIAGNOSTICS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON COMPILER_OR_TOOLCHAIN_VERSION_CHANGE {
      UPDATE_COMPILER_CONTEXT
      UPDATE_PASS_AND_TARGET_BEHAVIOUR
      RECHECK_SEMANTIC_EQUIVALENCE
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON ONTOLOGY_REVISION {
      REMAP_TERMS
      CHECK_SEMANTIC_EQUIVALENCE
      IDENTIFY_DEPRECATED_TERMS
      MIGRATE_RELATIONSHIPS
      PRESERVE_PRIOR_VERSION_REFERENCES
    }
  }

  FLOW_HASH {
    HASH_INPUT =
      CANONICALISE(
        ENTITY_TYPES,
        RELATIONSHIPS,
        RULES,
        CONFIDENCE,
        SEMANTIC_EQUIVALENCE,
        REASONING_CONSTRAINTS,
        UPDATE_MODEL
      )

    FLOW_HASH = SHA256(HASH_INPUT)
  }

  AI_CONSUMPTION {
    INDEX {
      ONTOLOGY
      ENTITY_TYPES
      RELATIONSHIPS
      RULES
      OUTPUTS
    }

    RETRIEVE {
      BY_COMPILER
      BY_SOURCE_LANGUAGE
      BY_LANGUAGE_VERSION
      BY_TOKEN
      BY_AST
      BY_SYMBOL
      BY_TYPE
      BY_IR
      BY_OPTIMISATION
      BY_TARGET
      BY_ABI
      BY_DIAGNOSTIC
      BY_OUTPUT_ARTIFACT
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      TRACE_COMPILATION_PIPELINE
      ANALYSE_LEXICAL_PROCESSING
      ANALYSE_PARSING
      ANALYSE_SEMANTICS_AND_TYPES
      TRACE_IR_GENERATION
      ANALYSE_OPTIMISATIONS
      TRACE_CODE_GENERATION
      ANALYSE_DIAGNOSTICS
      ANALYSE_TARGET_CONTEXT
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_COMPILER_FROM_LANGUAGE
      DISTINGUISH_SOURCE_AST_IR_AND_MACHINE_CODE
      PRESERVE_COMPILER_LANGUAGE_TARGET_ABI_AND_CONFIGURATION_CONTEXT
      DISTINGUISH_WARNING_FROM_ERROR
      DISTINGUISH_COMPILATION_SUCCESS_FROM_PROGRAM_CORRECTNESS
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_COMPILER_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              COMPILER_KNOWLEDGE
            )
          )
        )
      )
  }
}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ