IS there a consensus on the definition of a computer program in CS literature and if so, what is it? The following is what I came up with from my synthetic prior research but I might be wrong.

I understand it is possible to reduce any computer "program", in a maximal reduction(?), to these features:


Internal implementation: Everything from start to end, including possible functions and possible sub functions
External interface: A parameter set with which arguments might correspond in execution or call → if any


Internal implementation includes:


Data structures: Primitive data types and possibly also functions or modules (depends what term one prefers)
algorithms: outside or inside a function/algorithm → if any
Database interfaces → if any


I understand that external interface (very often represented by parenthesis) can be part of internal implementation (which, in programming languages, is very often represented by brackets) and that yes or no depends from language architecture.

IS there a consensus on the definition of a computer program in CS literature and if so, what is it?
Computer Science is far too diverse to have a single notion of program. For a theoretician, it might be an input tape to a universal Turing Machine, or any lambda expression in lambda calculus. For someone working on the front end of a compiler, it could be defined by a formal grammar while for someone working on the back end, or to the HW architect, it might be a sequence of binary instructions. For someone working on operating systems, it might be any file with the executable bit set.

Perhaps it could be said that a unifying theme is any form of information that can used to control the operation of a process, or an abstract or real machine, to produce information in the same or different form.

For some, I’m sure this will be too broad, for others, too narrow.