Autosave: 2022-12-18 13:00:05
This commit is contained in:
parent
44e4f19f54
commit
d187579bff
3 changed files with 46 additions and 5 deletions
|
@ -6,3 +6,22 @@ tags: [abstraction, modules]
|
|||
---
|
||||
|
||||
# Hardware abstraction and modularity
|
||||
|
||||
In computer architecture we deal with complexity by breaking the system into **modules**. For each module we distinguish **_abstraction_** from **_implementation_**.
|
||||
|
||||
<dl>
|
||||
<dt>abstraction</dt>
|
||||
<dd>what the module does</dd>
|
||||
<dt>implementation</dt>
|
||||
<dd>how it does it</dd>
|
||||
</dl>
|
||||
|
||||
When using a module as a building block you are to focus exclusively on the module's abstraction, ignoring completely its implementation details.
|
||||
|
||||
> The abstraction-implementation paradigm helps developers manage complexity and maintain sanity: by dividing an overwhelming system into well-defined modules we create manageable chunks of implementation work and localize error detection and correction.
|
||||
|
||||
[N.Nisan, S.Schoken. 2021. **The Elements of Computing Systems** (Second Edition)]
|
||||
|
||||
The design of the diagram below emphasises the role of abstraction and modularity in the movement from transistors to chips:
|
||||
|
||||

|
||||
|
|
22
Logic/Propositional_logic/Boolean_algebra.md
Normal file
22
Logic/Propositional_logic/Boolean_algebra.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
categories:
|
||||
- Logic
|
||||
tags: [propositional-logic, algebra]
|
||||
---
|
||||
|
||||
# Boolean algebra
|
||||
|
||||
Many of the laws that obtain in the mathematical realm of algebra also obtain for Boolean expressions.
|
||||
|
||||
## The Commutative Law
|
||||
|
||||
$$
|
||||
x \land y = y \land x \\
|
||||
$$
|
||||
|
||||
$$
|
||||
|
||||
x \lor y = y \lor x
|
||||
$$
|
||||
|
||||
## The Associative Law
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
categories:
|
||||
- Mathematics
|
||||
tags: [logic]
|
||||
- Logic
|
||||
tags: [logic, propositional-logic]
|
||||
---
|
||||
|
||||
# Boolean functions
|
||||
|
@ -14,9 +14,9 @@ $$
|
|||
|
||||
Here is a work through where $f(1, 0, 1)$:
|
||||
|
||||
- The first disjunction : $ \lnot(x) \land z $ is false because $x$ is 1 and $z$ is 1
|
||||
- The second disjunction: $x \land y$ is true because $x$ is 1 and $y$ is 1
|
||||
- The overall function returns true because the main connective is disjunction and one of the disjuncts (the second) evaluates to 1. Thus the output is 1.
|
||||
- The first disjunction : $ \lnot(x) \land z $ is false because $x$ is 1 and $z$ is 0
|
||||
- The second disjunction: $x \land y$ is false because $x$ is 1 and $y$ is 1
|
||||
- The overall function returns false because the main connective is disjunction and both of its disjuncts are false
|
||||
|
||||
We can compute all possible outputs of the function by constructing a [truth-table](/Logic/Propositional_logic/Truth-tables.md) with each possible variable as the truth conditions and the output of the function as the truth value:
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue