Computer Science
Towards a hermeneutic definition of software
L. M. Possati
The paper asks why a comprehensive definition of software is needed and argues that reducing software to a mere algorithm or set of algorithms is inadequate. Given software’s pervasiveness in contemporary society, a philosophical analysis is required to clarify its multifaceted and paradoxical nature. The author critiques positions in media studies that either deny software’s reality (Kittler’s hardware reductionism) or collapse it into algorithms and data structures (Manovich), and notes Chun’s claim that a unified definition is impossible due to software’s paradoxical visibility/invisibility. Similar reductive tendencies in computer science are identified (over-formalization, difficulties linking program to material execution, explaining miscomputation, and neglect of philosophical issues). The research aim is to develop a comprehensive philosophical definition that specifies essential criteria for software, emphasizing two shared features—written form and effectiveness (execution by a physical machine)—and to show that software should be understood as a complex hermeneutic process rather than only an object or a language.
The paper surveys key debates in media studies and philosophy of technology: Kittler’s thesis "There is no software" (software is an illusion reducible to voltages and hardware), and Manovich’s counter-position "There is only software" (software as ubiquitous meta-medium defined as data structures plus algorithms). Chun emphasizes software’s paradoxical, ghostly presence, challenging the possibility of a single definition. The author critiques these positions for either overemphasizing paradox or flattening software into algorithmic formalism. In computer science philosophy, Colburn’s "concrete abstraction" characterizes software’s dual nature and posits a programmer-established parallelism between code and machine, while Irmak argues software is an "abstract artifact" akin to musical works, with existence tied to human creative acts; both are found incomplete for explaining ontological status and efficacy. The review also situates the history of programming at the intersection of machinery and language (Priestley; Haigh), outlines the stored-program paradigm (von Neumann, ENIAC/EDVAC), and notes that programs can rewrite data and even themselves. The paper positions Ricoeur’s hermeneutics and postphenomenology as underused frameworks capable of integrating cultural, technical, and ontological aspects of software.
The study employs a philosophical-conceptual and hermeneutic approach integrated with historical-technical analysis: (1) Conceptual analysis to formulate a biconditional, criteria-based definition of software, refined into five minimal requirements that jointly capture software’s essence as engineering in written form, tied to machine execution; (2) Historical reconstruction of programming languages and architectures (ENIAC/EDVAC, stored-program principle, compilers/assemblers) to ground the criteria in the evolution of machinery-language synthesis; (3) Application of Ricoeur’s hermeneutic model of text (distanciation/appropriation; explaining/understanding) to software, treating software as written discourse that attains autonomy from author, context, and original readership, and that projects a world through interpretive interaction; (4) Layered structural analysis of software mediation (users, design/documentation, HLL, OS, compiler/assembler, machine code, CPU/microcode) to show software as a multi-level writing and rewriting process; (5) Technical explication of CPU operation (FDE cycle, registers, CU, ALU, microprogramming) and inscription (storage as writing) to demonstrate how execution is realized as continual rewriting; (6) Ontological argument invoking Derrida’s grammatology and the regulative analogy between Boolean logic and electrical circuits (Peirce) to explain software’s effectiveness: voltages as the final translation of code, with the logic-circuit analogy functioning as a regulative horizon enabling hermeneutic appropriation.
- A comprehensive definition of software is achievable via five criteria: (1) software is a form of engineering (an artifact with functions); (2) realized as writing not intended to be read; (3) produces sets of written instructions linked to operations, tasks, and data (programs) to be executed; (4) inherently connected to the functioning of a physical machine (computer); (5) programs can be of different types.
- Software’s specificity lies in its being engineering in written form: every stage—from pre-code documentation, through HLL, OS, compilers/assemblers, to machine code and microcode—constitutes a chain of writing and rewriting.
- Using Ricoeur’s hermeneutics, software exhibits heightened distanciation (autonomy from author/context/readers) and appropriation (user interaction). Explaining corresponds to internal structuring and translation across layers; understanding corresponds to execution and user interaction.
- Execution is not communication with the CPU but rewriting: the CPU’s FDE cycle, microcode operations, and storage all operate as inscription and re-inscription of data.
- The effectiveness of software—how symbols produce real effects—rests on the regulative analogy between Boolean logic and electrical circuits, which endows material operations with logical meaning; voltages are the final translation of code.
- Consequently, software is neither merely an object nor reducible to language or algorithms; it is a complex hermeneutic process that redefines knowledge and being-in-the-world.
By specifying necessary criteria and reframing software as a hermeneutic process, the paper addresses the research question of how to define software beyond algorithmic or hardware-reductive accounts. The five-criteria definition unifies machinery and language through writing, clarifying software’s ontological status as both abstract and concrete. The Ricoeurian framework resolves tensions noted in media studies (paradox, visibility/invisibility) by explaining software’s autonomy (distanciation) and world-projecting interaction (appropriation). The layered translation chain (pre-code to machine code and voltages) explains how symbolic structures achieve material efficacy without presupposing causal gaps: execution is continuous rewriting in an already inscribed material substrate (CPU, storage). The regulative logic–circuit analogy grounds effectiveness hermeneutically rather than strictly causally or monistically, accommodating miscomputation and mediation. This analysis is significant for media studies and computer science: it moves beyond rhetorical paradox and algorithmic reduction, provides an integrative ontology of software, and opens avenues for examining socio-technical narratives and user praxis. It also suggests broader implications for narrative identity in a datafied society, where software-configured narratives mediate selfhood and social worlds.
The paper argues that a comprehensive, hermeneutic definition of software is possible. Using Ricoeur’s model of text, software is shown to be a process of writing and rewriting that entails interpretation on two levels: explaining (internal structuring across layers) and understanding (execution and user interaction). The first level is epistemological; the second is ontological. Software thus reconfigures knowledge and being-in-the-world. The effectiveness of software is enabled by the regulative analogy between Boolean logic and electrical circuits, making voltages the final translation of code. The analysis indicates that continental philosophy can deepen prevailing accounts in media studies and computer science and invites further research into the narrative and existential dimensions of digital technologies, including how narrative identity is reshaped in contact with software and AI. Digital technologies, as narrative technologies, challenge rather than eliminate selfhood, calling for narratives and self-narratives that contest surveillance and open new spaces of autonomy and freedom.
Related Publications
Explore these studies to deepen your understanding of the subject.

