In previous discussions, we addressed the concept of computation, stating, “Although computation is a mathematical term, it can also be defined as a physical process since it requires a machine or machines to implement.” In that same work, we also highlighted that computers emerged with the purpose of automating computation processes to operate faster and more accurately. In this section of the study, we will delve further into computers and computation. However, let us first begin with the definition of ‘digital computation.’
In simple terms, digital computation is the process of processing, manipulating, and storing numerical data using a binary system (0 and 1). This process is foundational to computers and enables nearly every technological device we use in our daily lives to function.
In this section, we will thoroughly examine and discuss the concepts of Digital Computer States, Digital Computer Dynamics, and Digital Computer Measurement.
1.3.1 Computer States
Many researchers have provided various detailed explanations on this topic. I believe there is a great deal to be said on the matter, but I will keep this explanation straightforward for clarity. At its most basic, a computer’s state space is a critical structure that defines its internal state. Admittedly, this may not be immediately clear, but I will break it down step-by-step. The state space referred to here encompasses all data stored across various components of the computer, representing the contents of records at a specific moment in time. Now, let us delve gradually into the details.
1.3.1.1. What is the State Space?
In defining the concept above, we introduced another term, which now requires further discussion and explanation. A computer’s state space generally refers to the totality of data stored within its memory units. Each memory unit functions as a structure that can store a specific piece of information (such as a number, character, or byte). These units contain data accessed and processed by the computer’s processor during operation.
1.3.1.1.1. The Importance of Time within the State Space
In this context, we used the phrase “during operation,” which is significant because it introduces the notion of time. Thus, the state at a specific time ‘x’ represents the data within the records at that moment. Time is a critical component in digital computation because computer operations are sequential, with each operation depending on a specific initial condition. Therefore, the state at time ‘x’ provides us with information about the status of computer operations and data at that exact moment.
In conclusion, the state space of a digital computer constitutes a foundational element that defines the computer’s data and the state of that data at a specific point in time. This concept is essential for understanding the operational process of the computer, data processing, and program execution. Understanding a computer’s state space is crucial for grasping the fundamentals and functioning of digital computation.
1.3.2. Dynamics of Computers
Having explained the state space of computers and their relationship with time, we can now take a step further. Here, we will extend the concept of time introduced above and discuss it in greater depth.
Computer dynamics describe how a computer’s state changes over time. This process occurs when a program (formed with the help of algorithms) moves the computer between various states for each valid input. Upon completion, the computer generates an output—essentially, the program produces a result. State transitions are determined by the program and carried out using classical Boolean gates. Although not within the scope of this discussion, I plan to write about Boolean gates in the future. For now, let us discuss these state transitions more quantitatively and as simply as possible.
If we consider a computer as a machine, a digital machine/computer has only a finite number of possible states, which we can denote as follows:
- ( x₁, x₂, x₃, x₄, x₅, …, xₙ )
Subsequently, the algorithm’s code and the provided input arrange these states in a temporal order:
- ( x₁¹, x₂¹, x₃¹, x₄¹, …, xₙ¹ )
Here, the computer transitions from the initial state ( x₁¹ ) to the final state ( xₙ¹ ) using the data.
In computer dynamics, function composition notation is used to mathematically represent the process of transitioning between different states of an algorithm. This notation shows how a sequence of functions is applied consecutively. Let us begin by asking the question: What is function composition?
Function composition means using the output of one function as the input of another function. For example, let ( f₀ ), ( f₂ ), and ( f₋₁ ) be functions representing specific states. These functions take a given input and transform it to the next state. Function composition is used to aggregate this transformation process.
For instance:
- If the function ( f₀(x) ) takes the input element ( x ) and represents the initial state, its output will be ( x₁¹ ).
- In the next step, the function ( f₂ ) takes this state and transforms it to the subsequent state ( x₂¹ ), meaning that each function operates on the transformed output of the previous function.
- This process continues until reaching the final state using ( f₋₁ ).
The notation for this sequence is written as:
- ( (f₋₁ ∘ … ∘ f₂ ∘ f₀)(x) )
- Here, the symbol ( ∘ ) represents function composition, indicating that each function’s output serves as the input for the following function.
- ( x ) represents the input data for the algorithm.
- The order of functions reflects the temporal sequence of states; the rightmost function ( f₀ ) represents the initial state, while the leftmost function ( f₋₁ ) represents the final state.
In conclusion, this function composition notation systematically illustrates how a digital computer processes an input, transitions through specific states, and ultimately produces an output. This notation is a valuable tool for understanding the functioning of an algorithm, providing a mathematical framework for analyzing computer dynamics. In this way, the transformation and transition of each state can be more clearly examined.
1.3.3. Measurement in Computers
In digital computation, obtaining the result of a measurement process is generally simpler than in quantum computation, as digital computation ends in a specific state that can be read as the output. Let us now discuss the digital computation process step-by-step.
- Initial State (x): Computation begins with an input value ( x ), which can be considered the starting state of the computation.
- Intermediate States: We previously denoted these steps as ( x₁, x₂, x₃, x₄, x₅, …, xₙ-1 ). The computation process progresses through a series of operations, with each step transitioning to the next state. These steps are represented by ( x₁ ), ( x₂ ), etc., with each intermediate state representing a specific step in the computation process.
- Final State: At the end of the computation process, the system reaches a final state denoted as ( xₙ ). This state represents the outcome after all operations have been applied.
- Projection Function: To measure or project the information in the final state, a Boolean (logical) function called ( μD ) is applied. This function selects and extracts specific data from the state, effectively projecting only the data of interest. For instance, in digital computation, we are generally only interested in the output value, and this projection determines which information is important and produces the final output.
- Output (y): This is the desired result of the computation, which is obtained after applying the projection function ( μD ).
If we were to express all the above processes mathematically, it would be as follows:
[y = μD ∘ (f₋₁ ∘ … ∘ f₂ ∘ f₀)(x)]
Here, ( μD ) is the projection function that provides the output by reading the value obtained in the final state of the computation. The important aspect of ( μD ) is that it does not alter the computation process; it merely reads the final state and extracts the desired information.
In classical digital computers, this process means reading the final state without altering the physical state of the data or performing further computation.