Ontologies are used for formal representation of domain knowledge.
This approach enables us to take into account th e “dual nature” of computer programs, which can be considered as both syntactic entities (well-formed expressions in a programming language) and artefacts whose function is to enable computers to process information.
There are two complexities to be mastered:
elements of a computer program:
there are temporal entities (program executions), physical entities (inscriptions on files), plural entities (code base), functional entities (program execution platforms) and dual nature (syntactic and functional entities—the programs themselves)
in this sense, progranms are expressions
but there is also a functional dimension, always looming in the background