Assembly Language
A human readable form of machine language. An assembler converts code written in this language into machine language. These languages are processor specific.
A small fundamental building block making up the matter in the universe. These atoms are constructed out of even smaller components called Electrons, Protons, and Neutrons.
A variable stored inside of a logical structure called an object. In theory, the object can control access to this variable, protecting it from being modified maliciously by some other code.
A device that can deliver electrons to a circuit for some period of time. Some batteries are depleted by this action, others can be “recharged” so they can function repeatedly.
A “blueprint” for an “object”. The blueprint is used to manufacture objects at runtime.
A series of space-separated text items handed to the operating system. The first of these items is the name of some program (which may be internal to the operating system) you want to run. The rest of the items are called parameters which are processed by the program and control exactly what that program does.
Command Line
A simple text line on your screen where you can type in a command to the operating system.
Conservation Laws
Mathematical laws governing interactions going ion in our universe. Three laws include the Conservaton of Mass, Conservation of Energy, and Conservtion o Momentum. There are many others in different fields of study. These laws can be expressed as mathematical equations, and studied in detail, which makes up much of the work in science and engineering.
A measure of the movement of electrical potential across some distance
To create a protected shell around something. We use such a shell to prevent outside code from modifying data, or accessing functions that only the object should access.
Function Prototype
Function Prototype
In digital systems, “gates” are small components designed to perform simple Boolean operations. Internally, they model a simple Truth Table` defining the operation of the gate. These components need no clock, they simply transform input signals to output signals.
Graphical User Interface. Think “Windows”!
Hardware Description Language
A formal language used to describe the operation of a hardware system. Currently, HDL languages are actively used to design computer systems, replacing old techniques where circuits were drawn directly.
High-Level Language
Most programming languages are designed to help humans instruct a machine in how to solve some problem. These languages do not care what processor they will run on, and are called machine independent. You use a compiler designed to convert your high-level code into machine language for a particular processor. A different compiler is needed for each language machine combination.
Integrated Development Environment
At the end of each “four-step” cycle in a processor, a signal can be detected that effectively calls a special function to deal with that signal. This happens independently of any normal program running at the time. Interrupts are used to deal with fast response hardware issues.
Machine Language
Machine Code
The low-level binary language a particular processor understands. Machine Language is a set of very simple instructions that the processor can execute. These languages are designed by the processor manufacturer, and are unique to that processor (or processor family). Usually that manufacturer designs an Assembly Language to go along with their machine language, but you are not required to use that language. As long as your assembler generates correct machine language, your code can run on that processor.
Functions contained inside of an object are called “methods”. The method can be asked to perform some action, but that method can determine exactly what to do. By using this approach, objects can control their own actions.
Network Time Protocol
Network Time Synchronization
Servers on the Internet with access to very accurate (usually based on atomic vibrations) time signals, keep track of the current time and can report that time to your system using a simple protocol. Most machines connected to the Internet can be set up to synchronize their view of the current time with these servers. (The software can even account for the time it takes for those signals to reach your machine!)
A logical container modeling something from our “human” world. All data and functions that work on those data should be inside of the container. This isolates parts of the program, increasing the reliability of that code.
To run a processor faster than the manufacturer recommends. Some chips can handle this, since manufacturers are conservative in their ratings. However, pushing the chip to far will result in internal failures since components need a minimum amount of time to reach valid levels.
Programmer’s Editor
A good editing tool that understands you are writing a computer program, and helps you do that properly. I use Vim as my personal editor.
A programming techniques where you write a function that calls itself as part of its implementation.
When you write a short program to help you manage your system, we call that program a “script”. Popular scripting languages include Python, and “Bash”.
Command Prompt
The “old fashioned” way of controlling a computer. On Windows systems, this involves opening a window where you can type in commands. On Mac and Linux systems, you open up a Terminal program.
Test Driven Development
This is a development technique where you create simple test code that verifies that a new feature you plan to add to your project actually works as required. You write this test before creating the feature, then add code to make that feature work and pass the test. Repeat this process until you are done.
truth table
A simple table showing the outputs resulting from a fixed set of inputs. Truth tables are commonly used to show hor Boolean Functions operate.
Virtual Machine
A software implementation of a computer architecture. These programs can mimic a real computer completely.
A measure of the difference in electrical potential between two reference points.