AI SEARCH
FLOW ALGEBRA — INTERPRETER ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/programming/interpreter-ontology.html
FLOW INTERPRETER_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Programming"
ONTOLOGY = "Interpreter Ontology"
PURPOSE = "Formalise language interpreters, source and bytecode evaluation, parsing, runtime environments, execution state, dynamic semantics, errors and interpreter relationships."
LOCALE = "en-GB"
}
ENTITY_TYPES {
INTERPRETER
LANGUAGE_INTERPRETER
BYTECODE_INTERPRETER
TREE_WALK_INTERPRETER
COMMAND_INTERPRETER
REPL
PROGRAMMING_LANGUAGE
LANGUAGE_VERSION
SOURCE_CODE
SOURCE_FILE
SOURCE_TEXT
TOKEN
LEXEME
LEXER
PARSER
GRAMMAR
ABSTRACT_SYNTAX_TREE
AST_NODE
BYTECODE
BYTECODE_INSTRUCTION
OPCODE
VIRTUAL_MACHINE
RUNTIME
RUNTIME_ENVIRONMENT
EXECUTION_CONTEXT
CALL_STACK
STACK_FRAME
ENVIRONMENT
SCOPE
NAMESPACE
SYMBOL
BINDING
VARIABLE
VALUE
DATA_TYPE
EXPRESSION
STATEMENT
FUNCTION
PROCEDURE
METHOD
PARAMETER
ARGUMENT
RETURN_VALUE
OBJECT
CLASS
MODULE
PACKAGE
IMPORT
CONTROL_FLOW
CONDITIONAL
LOOP
BRANCH
EXCEPTION
EXCEPTION_HANDLER
ERROR
SYNTAX_ERROR
NAME_ERROR
TYPE_ERROR
RUNTIME_ERROR
INPUT
OUTPUT
PROGRAM_STATE
MEMORY
HEAP
GARBAGE_COLLECTOR
NATIVE_FUNCTION
FOREIGN_FUNCTION_INTERFACE
LIBRARY
DEPENDENCY
TRACE
DIAGNOSTIC
CONFIGURATION
INTERPRETER_VERSION
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
INTERPRETS
EXECUTES
EVALUATES
TOKENISES
PARSES
PRODUCES
READS
WRITES
DEFINES
DECLARES
REFERENCES
RESOLVES_TO
BINDS_TO
HAS_TYPE
HAS_VALUE
CALLS
INVOKES
HAS_PARAMETER
HAS_ARGUMENT
RETURNS
IMPORTS
LOADS
BRANCHES_TO
LOOPS_TO
THROWS
CATCHES
HANDLES
ALLOCATES
DEALLOCATES
COLLECTS
PUSHES
POPS
HAS_STATE
TRANSITIONS_TO
HAS_RUNTIME
HAS_ENVIRONMENT
HAS_CONFIGURATION
HAS_VERSION
DEPENDS_ON
PRECEDES
FOLLOWS
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
MAPS_TO
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
INTERPRETER_SPECIFICATIONS
INTERPRETER_VERSION_DATA
LANGUAGE_SPECIFICATIONS
LANGUAGE_VERSION_DATA
SOURCE_CODE
GRAMMAR_DEFINITIONS
BYTECODE_DEFINITIONS
RUNTIME_DATA
EXECUTION_TRACES
CALL_STACK_TRACES
SYMBOL_AND_SCOPE_DATA
MODULE_AND_PACKAGE_DATA
DEPENDENCY_DATA
MEMORY_DATA
GARBAGE_COLLECTION_DATA
ERROR_LOGS
DIAGNOSTICS
CONFIGURATION_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_INTERPRETER_IDENTIFIERS
NORMALISE_INTERPRETER_NAMES
NORMALISE_INTERPRETER_VERSIONS
NORMALISE_LANGUAGE_NAMES
NORMALISE_LANGUAGE_VERSIONS
NORMALISE_SOURCE_PATHS
NORMALISE_TOKEN_TYPES
NORMALISE_SYMBOL_IDENTIFIERS
NORMALISE_TYPE_NAMES
NORMALISE_FUNCTION_SIGNATURES
NORMALISE_MODULE_NAMES
NORMALISE_BYTECODE_OPCODES
NORMALISE_ERROR_TYPES
NORMALISE_CONFIGURATION
RESOLVE_SYMBOL_AND_RUNTIME_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS INTERPRETATION_PIPELINE {
SOURCE_OR_BYTECODE
-> INPUT_CLASSIFICATION
-> LEXICAL_AND_PARSE_PROCESSING_IF_REQUIRED
-> EXECUTABLE_REPRESENTATION
-> RUNTIME_ENVIRONMENT_SETUP
-> EVALUATION_OR_DISPATCH
-> PROGRAM_STATE_UPDATE
-> NEXT_OPERATION
-> RESULT_OR_ERROR_OR_TERMINATION
}
PROCESS SOURCE_INTERPRETATION {
SOURCE_TEXT
-> LEXICAL_ANALYSIS
LEXICAL_ANALYSIS
-> TOKEN_STREAM
TOKEN_STREAM
-> PARSING
PARSING
-> ABSTRACT_SYNTAX_TREE
ABSTRACT_SYNTAX_TREE
-> NODE_EVALUATION
NODE_EVALUATION
-> PROGRAM_STATE_TRANSITION
}
PROCESS BYTECODE_INTERPRETATION {
BYTECODE
-> INSTRUCTION_POINTER
INSTRUCTION_POINTER
-> BYTECODE_INSTRUCTION_FETCH
BYTECODE_INSTRUCTION_FETCH
-> OPCODE_DECODE
OPCODE_DECODE
-> OPERAND_RESOLUTION
OPERAND_RESOLUTION
-> INSTRUCTION_EXECUTION
INSTRUCTION_EXECUTION
-> VM_STATE_UPDATE
-> NEXT_INSTRUCTION
}
PROCESS SYMBOL_REASONING {
IDENTIFIER_REFERENCE
-> CURRENT_ENVIRONMENT
CURRENT_ENVIRONMENT
-> SCOPE_LOOKUP
SCOPE_LOOKUP
-> ENCLOSING_SCOPE_OR_NAMESPACE_SEARCH
MATCHED_BINDING
-> VALUE_OR_ENTITY
}
PROCESS FUNCTION_CALL_REASONING {
CALL_EXPRESSION
-> CALLEE_RESOLUTION
CALLEE_RESOLUTION
-> ARGUMENT_EVALUATION
ARGUMENT_EVALUATION
-> PARAMETER_BINDING
PARAMETER_BINDING
-> STACK_FRAME_OR_CALL_CONTEXT
STACK_FRAME_OR_CALL_CONTEXT
-> FUNCTION_BODY_EVALUATION
FUNCTION_BODY_EVALUATION
-> RETURN_VALUE_OR_EXCEPTION
RETURN_VALUE
-> CALLER_CONTEXT_RESTORE
}
PROCESS DYNAMIC_TYPE_REASONING {
VALUE
-> RUNTIME_TYPE
OPERATION + RUNTIME_TYPES
-> OPERATION_VALIDATION
VALID_OPERATION
-> EVALUATED_RESULT
INVALID_OPERATION
-> TYPE_OR_RUNTIME_ERROR
}
PROCESS EXCEPTION_REASONING {
RUNTIME_EVENT
-> EXCEPTION_OR_ERROR
EXCEPTION
-> HANDLER_SEARCH
HANDLER_FOUND
-> CONTROL_TRANSFER_TO_HANDLER
HANDLER_NOT_FOUND
-> STACK_UNWINDING
UNHANDLED_EXCEPTION
-> PROGRAM_OR_REQUEST_TERMINATION
}
PROCESS MODULE_REASONING {
IMPORT_REQUEST
-> MODULE_RESOLUTION
MODULE_RESOLUTION
-> MODULE_LOAD_OR_CACHE_LOOKUP
MODULE_LOAD
-> MODULE_INITIALISATION
MODULE_INITIALISATION
-> EXPORTED_BINDINGS
EXPORTED_BINDINGS
-> IMPORTING_ENVIRONMENT
}
PROCESS MEMORY_REASONING {
OBJECT_OR_VALUE_CREATION
-> MEMORY_ALLOCATION
MEMORY_ALLOCATION
-> HEAP_OR_RUNTIME_STORAGE
REFERENCE_GRAPH
-> REACHABILITY_ANALYSIS_IF_MANAGED
UNREACHABLE_OBJECT
-> GARBAGE_COLLECTION_IF_APPLICABLE
}
PROCESS ERROR_REASONING {
SOURCE_OR_RUNTIME_EVENT
-> ERROR_DETECTION
ERROR_DETECTION
-> SYNTAX_ERROR
OR -> NAME_ERROR
OR -> TYPE_ERROR
OR -> RUNTIME_ERROR
ERROR_CONTEXT
-> STACK_TRACE_AND_SOURCE_LOCATION
STACK_TRACE_AND_SOURCE_LOCATION
-> ROOT_CAUSE_HYPOTHESIS
-> CONFIDENCE_SCORE
}
RULES {
IF SOURCE_IS_INTERPRETED
THEN REQUIRE {
PROGRAMMING_LANGUAGE
LANGUAGE_VERSION
INTERPRETER_VERSION
RUNTIME_CONFIGURATION
}
IF IDENTIFIER_IS_REFERENCED
THEN REQUIRE ENVIRONMENT_SCOPE_AND_BINDING_CONTEXT
IF FUNCTION_IS_CALLED
THEN LINK CALLER_CALLEE_ARGUMENTS_PARAMETERS_AND_RETURN_OR_EXCEPTION
IF BYTECODE_IS_EXECUTED
THEN PRESERVE BYTECODE_VERSION_VM_AND_OPCODE_CONTEXT
IF RUNTIME_TYPE_IS_USED
THEN DO_NOT_ASSUME STATIC_TYPE_INFORMATION_EXISTS
IF EXCEPTION_IS_RAISED
THEN PRESERVE THROW_CONTEXT_HANDLER_SEARCH_AND_STACK_STATE
IF SAME_SOURCE_IS_RUN_WITH_DIFFERENT_INTERPRETER_VERSIONS
THEN DO_NOT_ASSUME IDENTICAL_RUNTIME_BEHAVIOUR
IF SEMANTIC_IDENTIFIERS_DIFFER
AND INTERPRETER_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
INTERPRETER_VERSION_CERTAINTY,
LANGUAGE_VERSION_CERTAINTY,
RUNTIME_CONFIGURATION_CERTAINTY,
SYMBOL_RESOLUTION_COMPLETENESS,
EXECUTION_TRACE_COMPLETENESS,
STACK_TRACE_QUALITY,
ERROR_DIAGNOSTIC_QUALITY,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF INTERPRETER_OR_LANGUAGE_VERSION_IS_UNKNOWN
THEN REDUCE_RUNTIME_SEMANTIC_CONFIDENCE
IF DYNAMIC_STATE_IS_PARTIAL
THEN REDUCE_EXECUTION_INFERENCE_CONFIDENCE
IF REPRODUCIBLE_EXECUTION_TRACE_CONFIRMS_BEHAVIOUR
THEN INCREASE CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
INTERPRETER_IDENTIFIER,
INTERPRETER_VERSION,
PROGRAMMING_LANGUAGE,
LANGUAGE_VERSION,
RUNTIME_CONFIGURATION
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
INTERPRETER != PROGRAMMING_LANGUAGE
INTERPRETER != COMPILER
SOURCE_CODE != EXECUTION_STATE
TOKEN_STREAM != ABSTRACT_SYNTAX_TREE
BYTECODE != SOURCE_CODE
BYTECODE != MACHINE_CODE
VARIABLE != VALUE
IDENTIFIER != BOUND_ENTITY_WITHOUT_SCOPE_CONTEXT
RUNTIME_TYPE != STATIC_TYPE_IN_ALL_LANGUAGES
EXCEPTION != ROOT_CAUSE
STACK_TRACE != COMPLETE_CAUSAL_PROOF
INTERPRETED != NO_COMPILATION_OR_TRANSLATION_STAGE
INTERPRETER_VERSION_AFFECTS_RUNTIME_BEHAVIOUR
LANGUAGE_VERSION_AFFECTS_SEMANTICS
CONFIGURATION_AND_DEPENDENCIES_AFFECT_EXECUTION
DYNAMIC_BEHAVIOUR_MAY_NOT_BE_INFERABLE_FROM_SOURCE_ALONE
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_INTERPRETER_IDENTIFIER
CHECK_INTERPRETER_VERSION
CHECK_LANGUAGE_AND_VERSION
CHECK_SOURCE_OR_BYTECODE_FORMAT
CHECK_PARSE_STRUCTURE_IF_APPLICABLE
CHECK_SYMBOL_BINDINGS
CHECK_SCOPE_AND_ENVIRONMENT
CHECK_FUNCTION_CALLS
CHECK_RUNTIME_TYPES
CHECK_EXCEPTION_RELATIONS
CHECK_MODULE_RELATIONS
CHECK_MEMORY_AND_GC_RELATIONS
CHECK_EXECUTION_TRACE
CHECK_ERRORS_AND_DIAGNOSTICS
CHECK_CONFIGURATION
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_INTERPRETER_ENTITIES
SOURCE_INTERPRETATION_RELATIONS
BYTECODE_INTERPRETATION_RELATIONS
PARSE_RELATIONS
SYMBOL_BINDINGS
RUNTIME_TYPE_RELATIONS
FUNCTION_CALL_RELATIONS
PROGRAM_STATE_TRANSITIONS
MODULE_AND_IMPORT_RELATIONS
MEMORY_AND_GC_RELATIONS
EXCEPTION_RELATIONS
EXECUTION_TRACES
ERROR_AND_DIAGNOSTIC_RELATIONS
ROOT_CAUSE_HYPOTHESES
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON SOURCE_RUNTIME_OR_CONFIGURATION_CHANGE {
NORMALISE
REPROCESS_SOURCE_OR_BYTECODE
RESOLVE_SYMBOLS
UPDATE_RUNTIME_ENVIRONMENT
UPDATE_MODULE_RELATIONS
RECOMPUTE_EXECUTION_RELATIONS
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON NEW_EXECUTION_ERROR_OR_GC_DATA {
LINK_EVIDENCE
UPDATE_EXECUTION_TRACE
UPDATE_PROGRAM_STATE
UPDATE_MEMORY_AND_GC_RELATIONS
REASSESS_EXCEPTION_AND_ERROR_HYPOTHESES
UPDATE_CONFIDENCE
RECORD_PROVENANCE
}
ON INTERPRETER_OR_LANGUAGE_VERSION_CHANGE {
UPDATE_VERSION_CONTEXT
RECHECK_RUNTIME_SEMANTICS
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_INTERPRETER
BY_LANGUAGE
BY_VERSION
BY_SOURCE
BY_BYTECODE
BY_SYMBOL
BY_SCOPE
BY_FUNCTION
BY_RUNTIME_TYPE
BY_MODULE
BY_EXCEPTION
BY_ERROR
BY_EXECUTION_STATE
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
TRACE_INTERPRETATION_PIPELINE
ANALYSE_SOURCE_INTERPRETATION
ANALYSE_BYTECODE_INTERPRETATION
RESOLVE_SYMBOLS
TRACE_FUNCTION_CALLS
ANALYSE_DYNAMIC_TYPES
ANALYSE_EXCEPTIONS
TRACE_MODULE_IMPORTS
ANALYSE_MEMORY_AND_GC
ANALYSE_ERRORS
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_INTERPRETER_FROM_LANGUAGE_AND_COMPILER
PRESERVE_INTERPRETER_LANGUAGE_VERSION_RUNTIME_AND_CONFIGURATION_CONTEXT
DISTINGUISH_SOURCE_BYTECODE_AND_RUNTIME_STATE
DISTINGUISH_RUNTIME_TYPE_FROM_STATIC_TYPE
DISTINGUISH_EXCEPTION_OR_STACK_TRACE_FROM_ROOT_CAUSE
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_INTERPRETER_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
INTERPRETER_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard