IJCH - Inside JaiChai's Head
(Meaning: My Warped, Personal Opinions and Musings)
From the Author:
Salutations.
I am JaiChai.
And if I haven't had the pleasure of meeting you before, I'm delighted to make your acquaintance now.
I invite you to interact with everyone, learn, and have as much fun as possible!
For my returning online friends, "It's always great to see you again!"
Circuits and Programs -
Electrical engineers design circuits.
Computer Programmers create, well, computer programs.
Essentially, they are both constructing flow charts - one for electricity, the other for program execution.
These flow charts are what's known as "algorithms".
Simple Definition of an "Algorithm" -
An algorithm is a Step by step procedure designed to perform an operation, and which (like a map or flowchart) will lead to the sought result if followed correctly.
Algorithms have a definite beginning and a definite end, and a finite number of steps.
An algorithm produces the same output information given the same input information, and several short algorithms can be combined to perform complex tasks such as writing a computer program.
A cookbook recipe, a diagnosis, a problem solving routine, are some common examples of simple algorithms.
In mathematics and computer science, an algorithm is an unambiguous specification of how to solve a class of problems.
Algorithms can perform calculation, data processing and automated reasoning tasks.
Simple algorithms are great for solving structured problems; meaning: a straight line sequence of steps.
However, simple algorithms are incapable of solving problems where value judgments are required (e.g., "if this, then do" scenarios). For this added complexity, decision making must be incorporated into the algorithm.
How is this done?
With "Logic Gates".
But in order to understand logic gates, we must first meet George Boole...
George Boole -
George Boole (/buːl/; 2 November 1815 – 8 December 1864) was a largely self-taught English mathematician, philosopher and logician, most of whose short career was spent as the first professor of mathematics at Queen's College, Cork in Ireland.
He worked in the fields of differential equations and algebraic logic, and is best known as the author of The Laws of Thought (1854) which contains Boolean algebra. Boolean logic is credited with laying the foundations for the information age.
There's a crater on the Moon named after him (The Boole Crater).
The keyword Bool represents a Boolean datatype in many programming languages, though Pascal and Java, among others, both use the full name Boolean.
The library, underground lecture theatre complex and the Boole Centre for Research in Informatics at University College Cork are named in his honour. A road called Boole Heights in Bracknell, Berkshire is named after him.
Boolean Algebra in a Nutshell -
In mathematics, Boolean algebra is the branch of algebra that deals with logic.
In Boolean algebra the values of the variables are the truth values true and false, usually denoted by a 1 and 0 respectively.
Can you say "Binary"?
Consequently, we owe the creation of every binary system or device to George Boole's fundamental concepts about "switching" things "on" or "off".
Why do I say that?
Because Boolean algebra enables us to make "Logic Gates".
See: "Boolean Logic & Logic Gates: Crash Course Computer Science #3"
Brief Explanation of Logic Gates
In electronics, a logic gate is an idealized or physical device implementing a Boolean function; that is, it performs a logical operation on one or more binary inputs and produces a single binary output.
Depending on the context, the term may refer to an ideal logic gate, one that has for instance zero rise time and unlimited fan-out, or it may refer to a non-ideal physical device.
Whether in electronics or computers, their algorithms depend on the actions of just seven types of logic gates, called AND, OR, NAND (Not AND), NOR (Not OR), XOR (Exclusive OR) XNOR (Exclusive NOR) and NOT.
A logic gate is a small transistor circuit, basically a type of amplifier, which is implemented in different forms within an integrated circuit. Each type of gate has one or more (most often two) inputs and one output.
The logic rules for each type of gate can be described in different ways, by a written description of the action, by a truth table, or by a Boolean algebra statement.
Here's a visual of mapping of the electrical flow with logic gates -
Lambda Calculus -
I think Lambda Calculus is awesome!
It is simple, powerful and elegant.
What is Lambda Calculus? -
Lambda Calculus can encode any computation using mathematical expressions.
Note: All computations using Turing Machines can be done in Lambda Calculus ("Church - Turing Hypothesis").
Lambda Calculus builds the Logic Gates for mathematical equations AND for programs in all Functional Programming Languages.
And all this brings me to the title of this article:
"If a computer program were an electrical circuit, Lambda Calculus builds its transistors"
Transistors - (the electronic switches which control an "on" or "off" state in a circuit) ARE logic gates.
And Lambda Calculus (based on Boolean Algebra) builds the logic gates in all functional computer programs.
Parting Shots -
By JaiChai
Thanks for stopping by.
Truly hope to see you again!
About the Author
Believing that school was too boring, he dropped out of High School early; only to earn an AA, BS and MBA in less than 4 years much later in life – while working full-time as a Navy/Marine Corps Medic.
In spite of a fear of heights and deep water, he performed high altitude, free-fall parachute jumps and hazardous diving ops in deep, open ocean water.
After 24 years of active duty, he retired in Asia.
Since then, he's been a full-time, single papa and actively pursuing his varied passions (Writing, Disruptive Technology, Computer Science and Cryptocurrency - plus more hobbies too boring or bizarre for most folk).
He lives on an island paradise with his teenage daughter, longtime girlfriend and three dogs.