Skip to main content

Programming 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 — PROGRAMMING ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/programming/programming-ontology-2.html

FLOW PROGRAMMING_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Programming"
    ONTOLOGY = "Programming Ontology"
    PURPOSE = "Formalise programming languages, source-code structures, symbols, types, expressions, control flow, functions, objects, compilation, execution, testing and program-state relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    PROGRAMMING_LANGUAGE
    PROGRAM
    SOFTWARE
    SOURCE_CODE
    SOURCE_FILE
    MODULE
    PACKAGE
    LIBRARY
    FRAMEWORK
    SYNTAX
    SEMANTICS
    GRAMMAR
    TOKEN
    LEXEME
    IDENTIFIER
    KEYWORD
    OPERATOR
    EXPRESSION
    STATEMENT
    DECLARATION
    DEFINITION
    VARIABLE
    CONSTANT
    LITERAL
    VALUE
    DATA
    DATA_TYPE
    PRIMITIVE_TYPE
    COMPOSITE_TYPE
    USER_DEFINED_TYPE
    ARRAY
    LIST
    MAP
    SET
    OBJECT
    CLASS
    INTERFACE
    ENUMERATION
    FUNCTION
    PROCEDURE
    METHOD
    PARAMETER
    ARGUMENT
    RETURN_VALUE
    SCOPE
    NAMESPACE
    BINDING
    SYMBOL
    SYMBOL_TABLE
    CONTROL_FLOW
    SEQUENCE
    CONDITIONAL
    LOOP
    BRANCH
    EXCEPTION
    ERROR
    SYNTAX_ERROR
    TYPE_ERROR
    RUNTIME_ERROR
    LOGIC_ERROR
    INPUT
    OUTPUT
    PROGRAM_STATE
    MEMORY
    STACK
    HEAP
    POINTER
    REFERENCE
    RESOURCE
    COMPILER
    INTERPRETER
    ASSEMBLER
    LINKER
    LOADER
    ABSTRACT_SYNTAX_TREE
    INTERMEDIATE_REPRESENTATION
    BYTECODE
    MACHINE_CODE
    EXECUTABLE
    RUNTIME
    VIRTUAL_MACHINE
    BUILD
    DEPENDENCY
    TEST
    TEST_CASE
    UNIT_TEST
    INTEGRATION_TEST
    DEBUGGER
    TRACE
    VERSION
    CONFIGURATION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    WRITTEN_IN
    DEFINES
    DECLARES
    REFERENCES
    RESOLVES_TO
    BINDS_TO
    HAS_TYPE
    HAS_VALUE
    ASSIGNS
    EVALUATES_TO
    CALLS
    INVOKES
    HAS_PARAMETER
    HAS_ARGUMENT
    RETURNS
    IMPORTS
    EXPORTS
    DEPENDS_ON
    IMPLEMENTS
    EXTENDS
    INHERITS_FROM
    OVERRIDES
    INSTANTIATES
    READS
    WRITES
    ALLOCATES
    DEALLOCATES
    POINTS_TO
    REFERENCES_OBJECT
    PRECEDES
    FOLLOWS
    BRANCHES_TO
    LOOPS_TO
    THROWS
    CATCHES
    HANDLES
    COMPILES_TO
    INTERPRETS
    LINKS_TO
    LOADS
    EXECUTES
    TESTS
    DEBUGS
    HAS_STATE
    TRANSITIONS_TO
    HAS_CONFIGURATION
    HAS_VERSION
    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
    GRAMMARS
    TYPE_DEFINITIONS
    SYMBOL_TABLES
    ABSTRACT_SYNTAX_TREES
    CONTROL_FLOW_GRAPHS
    CALL_GRAPHS
    DEPENDENCY_GRAPHS
    BUILD_CONFIGURATIONS
    COMPILER_OUTPUT
    INTERPRETER_TRACES
    RUNTIME_TRACES
    TEST_RESULTS
    DEBUG_TRACES
    ERROR_LOGS
    VERSION_DATA
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_PROGRAM_IDENTIFIERS
    NORMALISE_LANGUAGE_NAMES
    NORMALISE_LANGUAGE_VERSIONS
    NORMALISE_SOURCE_PATHS
    NORMALISE_IDENTIFIERS
    NORMALISE_TYPE_NAMES
    NORMALISE_FUNCTION_SIGNATURES
    NORMALISE_CLASS_AND_INTERFACE_NAMES
    NORMALISE_MODULE_AND_PACKAGE_NAMES
    NORMALISE_DEPENDENCY_IDENTIFIERS
    NORMALISE_ERROR_TYPES
    NORMALISE_VERSION_IDENTIFIERS
    RESOLVE_SYMBOL_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS PROGRAMMING_ONTOLOGY_PIPELINE {
    SOURCE_CODE
      -> LANGUAGE_IDENTIFICATION
      -> LEXICAL_ANALYSIS
      -> SYNTACTIC_ANALYSIS
      -> SYMBOL_RESOLUTION
      -> TYPE_RESOLUTION
      -> CONTROL_FLOW_MAPPING
      -> CALL_AND_DEPENDENCY_MAPPING
      -> EXECUTION_SEMANTICS_MAPPING
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS LEXICAL_AND_SYNTACTIC_REASONING {
    SOURCE_TEXT
      -> TOKENISATION

    TOKENISATION
      -> TOKEN_STREAM

    TOKEN_STREAM
      -> PARSING

    PARSING
      -> ABSTRACT_SYNTAX_TREE

    ABSTRACT_SYNTAX_TREE
      -> SYNTAX_VALIDATION
  }

  PROCESS SYMBOL_REASONING {
    IDENTIFIER_REFERENCE
      -> CURRENT_SCOPE

    CURRENT_SCOPE
      -> ENCLOSING_SCOPE_SEARCH_IF_REQUIRED

    SCOPE_SEARCH
      -> NAMESPACE_OR_MODULE_SEARCH

    MATCHED_DECLARATION
      -> SYMBOL_BINDING

    SYMBOL_BINDING
      -> REFERENCED_ENTITY
  }

  PROCESS TYPE_REASONING {
    EXPRESSION_OR_VALUE
      -> TYPE_INFORMATION

    TYPE_INFORMATION
      -> LANGUAGE_TYPE_RULES

    LANGUAGE_TYPE_RULES
      -> TYPE_COMPATIBILITY_CHECK

    COMPATIBLE
      -> TYPED_EXPRESSION

    INCOMPATIBLE
      -> TYPE_ERROR
  }

  PROCESS CONTROL_FLOW_REASONING {
    ENTRY_POINT
      -> STATEMENT_SEQUENCE

    STATEMENT_SEQUENCE
      -> CONDITIONAL_EDGES
      -> LOOP_EDGES
      -> FUNCTION_CALL_EDGES
      -> EXCEPTION_EDGES

    CONTROL_EDGES
      -> CONTROL_FLOW_GRAPH

    CONTROL_FLOW_GRAPH
      -> REACHABILITY_AND_PATH_ANALYSIS
  }

  PROCESS FUNCTION_REASONING {
    FUNCTION_CALL
      -> CALLEE_RESOLUTION

    CALLEE_RESOLUTION
      -> ARGUMENT_EVALUATION

    ARGUMENT_EVALUATION
      -> PARAMETER_BINDING

    PARAMETER_BINDING
      -> FUNCTION_BODY_EXECUTION

    FUNCTION_BODY_EXECUTION
      -> RETURN_VALUE_OR_EXCEPTION

    RETURN_VALUE
      -> CALLER_CONTINUATION
  }

  PROCESS OBJECT_REASONING {
    CLASS_DEFINITION
      -> MEMBER_DEFINITIONS

    OBJECT_CREATION
      -> CLASS_RESOLUTION

    CLASS_RESOLUTION
      -> OBJECT_INITIALISATION

    METHOD_CALL
      -> RECEIVER_RESOLUTION
      -> METHOD_DISPATCH

    METHOD_DISPATCH
      -> METHOD_IMPLEMENTATION
  }

  PROCESS MEMORY_REASONING {
    VALUE_OR_OBJECT_CREATION
      -> STORAGE_REQUIREMENT

    STORAGE_REQUIREMENT
      -> STACK_OR_HEAP_OR_STATIC_STORAGE

    POINTER_OR_REFERENCE
      -> TARGET_RESOLUTION

    LIFETIME_END
      -> AUTOMATIC_MANAGED_OR_MANUAL_DEALLOCATION
  }

  PROCESS COMPILATION_REASONING {
    SOURCE_CODE
      -> FRONT_END_ANALYSIS

    FRONT_END_ANALYSIS
      -> INTERMEDIATE_REPRESENTATION

    INTERMEDIATE_REPRESENTATION
      -> OPTIMISATION

    OPTIMISATION
      -> CODE_GENERATION

    CODE_GENERATION
      -> OBJECT_OR_MACHINE_CODE

    OBJECT_CODE
      -> LINKING

    LINKING
      -> EXECUTABLE_OR_LIBRARY
  }

  PROCESS EXECUTION_REASONING {
    EXECUTABLE_SOURCE_OR_BYTECODE
      -> RUNTIME_OR_INTERPRETER_OR_VM

    RUNTIME
      -> INSTRUCTION_OR_EXPRESSION_EVALUATION

    EVALUATION
      -> PROGRAM_STATE_TRANSITION

    PROGRAM_STATE_TRANSITION
      -> NEXT_OPERATION_OR_TERMINATION
  }

  PROCESS TEST_AND_ERROR_REASONING {
    TEST_CASE
      -> TEST_INPUT

    TEST_INPUT
      -> PROGRAM_EXECUTION

    PROGRAM_EXECUTION
      -> OBSERVED_RESULT

    OBSERVED_RESULT + EXPECTED_RESULT
      -> PASS_OR_FAIL

    FAILURE_OR_RUNTIME_ERROR
      -> TRACE_AND_CONTEXT_ANALYSIS
      -> ROOT_CAUSE_HYPOTHESIS
      -> CONFIDENCE_SCORE
  }

  RULES {
    IF IDENTIFIER_IS_REFERENCED
    THEN REQUIRE SCOPE_NAMESPACE_AND_BINDING_CONTEXT

    IF VALUE_IS_INTERPRETED
    THEN PRESERVE TYPE_LANGUAGE_AND_VERSION_CONTEXT

    IF FUNCTION_IS_CALLED
    THEN LINK CALLER_CALLEE_ARGUMENTS_PARAMETERS_AND_RETURN_OR_EXCEPTION

    IF OBJECT_IS_INSTANTIATED
    THEN PRESERVE CLASS_AND_CONSTRUCTION_CONTEXT

    IF SOURCE_CODE_COMPILES
    THEN DO_NOT_AUTOMATICALLY_ASSERT CORRECT_RUNTIME_BEHAVIOUR

    IF TEST_PASSES
    THEN DO_NOT_ASSERT ABSENCE_OF_ALL_DEFECTS

    IF RUNTIME_ERROR_OCCURS
    THEN PRESERVE PROGRAM_STATE_CALL_STACK_AND_INPUT_CONTEXT

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND PROGRAMMING_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        LANGUAGE_VERSION_CERTAINTY,
        PARSE_COMPLETENESS,
        SYMBOL_RESOLUTION_COMPLETENESS,
        TYPE_INFORMATION_COMPLETENESS,
        CONTROL_FLOW_COMPLETENESS,
        RUNTIME_TRACE_QUALITY,
        TEST_EVIDENCE_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF LANGUAGE_OR_VERSION_IS_UNKNOWN
    THEN REDUCE_SEMANTIC_INFERENCE_CONFIDENCE

    IF DYNAMIC_DISPATCH_OR_RUNTIME_STATE_IS_UNOBSERVED
    THEN REDUCE_RUNTIME_INFERENCE_CONFIDENCE

    IF REPRODUCIBLE_TESTS_AND_TRACES_CONFIRM_BEHAVIOUR
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        CANONICAL_IDENTIFIER,
        PROGRAMMING_LANGUAGE,
        LANGUAGE_VERSION,
        SIGNATURE_OR_TYPE,
        MODULE_AND_SCOPE_CONTEXT
      )

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

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    SOURCE_CODE != EXECUTING_PROGRAM
    SYNTAX != SEMANTICS
    IDENTIFIER != REFERENCED_ENTITY_WITHOUT_BINDING
    VARIABLE != VALUE
    TYPE != VALUE
    PARAMETER != ARGUMENT
    FUNCTION_DEFINITION != FUNCTION_CALL
    CLASS != OBJECT
    INTERFACE != IMPLEMENTATION
    POINTER != POINTED_TO_OBJECT
    COMPILATION_SUCCESS != PROGRAM_CORRECTNESS
    TEST_PASS != PROOF_OF_CORRECTNESS
    RUNTIME_ERROR != ROOT_CAUSE
    STATIC_CALL_GRAPH_MAY_DIFFER_FROM_RUNTIME_DISPATCH
    LANGUAGE_VERSION_AFFECTS_SEMANTICS
    CONFIGURATION_AND_DEPENDENCIES_AFFECT_PROGRAM_BEHAVIOUR
    DYNAMIC_EXECUTION_MAY_NOT_BE_FULLY_INFERABLE_FROM_STATIC_CODE
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_LANGUAGE_AND_VERSION
    CHECK_PARSE_STRUCTURE
    CHECK_SYMBOL_BINDINGS
    CHECK_SCOPE_AND_NAMESPACE
    CHECK_TYPE_RELATIONS
    CHECK_CONTROL_FLOW
    CHECK_CALL_GRAPH
    CHECK_OBJECT_AND_CLASS_RELATIONS
    CHECK_MEMORY_RELATIONS
    CHECK_DEPENDENCIES
    CHECK_COMPILATION_RELATIONS
    CHECK_RUNTIME_TRACES
    CHECK_TEST_RESULTS
    CHECK_ERROR_RELATIONS
    CHECK_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_PROGRAMMING_ENTITIES
    LANGUAGE_RELATIONS
    SYNTAX_AND_SEMANTIC_RELATIONS
    ABSTRACT_SYNTAX_RELATIONS
    SYMBOL_BINDINGS
    TYPE_RELATIONS
    CONTROL_FLOW_GRAPHS
    CALL_GRAPHS
    CLASS_AND_OBJECT_RELATIONS
    DEPENDENCY_GRAPHS
    MEMORY_RELATIONS
    COMPILATION_RELATIONS
    EXECUTION_TRACES
    TEST_RELATIONS
    ERROR_AND_EXCEPTION_RELATIONS
    ROOT_CAUSE_HYPOTHESES
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON SOURCE_OR_CONFIGURATION_CHANGE {
      NORMALISE
      REPARSE_AFFECTED_SOURCE
      RESOLVE_SYMBOLS
      RECHECK_TYPES
      UPDATE_CONTROL_FLOW
      UPDATE_CALL_AND_OBJECT_RELATIONS
      UPDATE_DEPENDENCY_GRAPHS
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_TEST_RUNTIME_OR_ERROR_DATA {
      LINK_EVIDENCE
      UPDATE_EXECUTION_TRACE
      UPDATE_DYNAMIC_DISPATCH_RELATIONS
      UPDATE_TEST_RELATIONS
      REASSESS_ERROR_AND_ROOT_CAUSE_HYPOTHESES
      UPDATE_CONFIDENCE
      RECORD_PROVENANCE
    }

    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_PROGRAM
      BY_LANGUAGE
      BY_MODULE
      BY_IDENTIFIER
      BY_SYMBOL
      BY_TYPE
      BY_FUNCTION
      BY_CLASS
      BY_OBJECT
      BY_CONTROL_FLOW
      BY_DEPENDENCY
      BY_COMPILATION
      BY_RUNTIME
      BY_TEST
      BY_ERROR
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      PARSE_SOURCE
      RESOLVE_SYMBOLS
      ANALYSE_TYPES
      TRACE_CONTROL_FLOW
      TRACE_FUNCTION_CALLS
      ANALYSE_OBJECTS_AND_DISPATCH
      ANALYSE_MEMORY
      TRACE_COMPILATION_AND_EXECUTION
      ANALYSE_TESTS
      ANALYSE_ERRORS
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_SYNTAX_FROM_SEMANTICS
      DISTINGUISH_IDENTIFIER_FROM_BOUND_ENTITY
      PRESERVE_LANGUAGE_VERSION_TYPE_SCOPE_NAMESPACE_AND_MODULE_CONTEXT
      DISTINGUISH_CLASS_FROM_OBJECT
      DISTINGUISH_STATIC_STRUCTURE_FROM_RUNTIME_BEHAVIOUR
      DISTINGUISH_TEST_SUCCESS_FROM_PROOF_OF_CORRECTNESS
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_PROGRAMMING_INFERENCE
    }
  }

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

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