- () - parentheses/brackets
- [] - brackets/square brackets
- {} - braces/curly brackets
- <> - chevrons/angle brackets
- / - slash
- \ - backslash
- ! - bang/exclamation mark
- @ - at
- # - hash/pound
- $ - dollar
- % - percent
- ^ - caret
- & - ampersand
- * - asterisk/star
- : - colon
- ; - semicolon
- ' - apostrophe/single quote/tick
- " - quotation mark/double quote
- | - pipe
- , - comma
- . - dot/point/full stop
- ? - question mark
- ~ - tilde
- ` - backtick
- + - plus
- - - minus/dash/score
- _ - underscore
- #! - shebang (condensed from hash-bang)
- ?: - ternary
- FET field-effect transistor - basic building block of modern computers
- MOSFET metal oxide semiconductor FET - most used FET variant in modern computers
- MESFET metal semiconductor FET - sometimes used especially in CPU designs
- processor - a brain of computer, used to compute all the operations
- CPU central processing unit - processor
- FPU floating point unit - part of (some) processors, often a standalone co-processor
- GPU graphics processing unit ~ video card (actually a kind of computing units utilized on these cards, but can be seen as APUs and such as well)
- SPU sound processing unit - audio card
- APU accelerated processing unit - a co-processor with enhanced capabilities to compute some kind of operations, often a GPU
- NIC network interface card - a circuit used for network communication
- ALU arithmetic logic unit ~ processor (part of)
- CU control unit ~ processor (part of)
- PCB printed circuit board - a circuit printed on a piece of board
- motherboard/mainboard - a main PCB of every computer, for consumer computers usually integrates a NIC, SPU and a video card as well as some USBs and other I/Os
- RAM random access memory - volatile memory, stores data and instructions used right now, erased on power off, easy to read and write
- ROM read only memory - non-volatile memory, stores data and instructions to be used at any time during computer operation, easy to read sequentially, harder to read non-sequentially (randomly), even harder to write (if that's even possible on computer uptime or ever)
- PROM programmable ROM - unlike basic ROM, it can be programmed (at least once)
- EPROM erasable PROM - unlike basic PROM, it can be erased a reprogrammed (basic EPROMs are erased by UV radiation)
- EEPROM electrically EPROM - unlike basic EPROM, it can be erased by electricity, making it much easier to be reprogrammed
- cache - special memory used for quicker access - part of processor, term also used in networking for similar concept
- register - a piece of processor's cache (a single address in it)
- pin - a single signal conductor
- bus - a set of conductors of certain width (8, 16, 32, ...)
- V logic - a circuit, whose 0 is around 0V and it's 1 is around V, giving it more voltage than V usually ends in damaging the system, common are 3.3V, 5V, 9V, 12V and 19V logic
- I/O - input output
- computer - either a CPU, or a combination of CPU, RAM, ROM and I/O
- embedded system - a very small computer, being often used to be embedded into some larger products like ovens, microwave ovens, washing machines, lifts, etc.
- microcomputer - a computer, which can be easily transported by one person (from embedded systems up to desktop computers)
- mainframe - a huge, heavy, expensive, powerful computer, usually owned by large corporations
- microcontroller - a one chip computer, containing CPU, RAM, ROM and I/O
- one chip - an embedded system sporting exactly one chip, usually a microcontroller
- consumer computer - a modern computer of reasonably high power and affordable price with lots of I/O usually including most of keyboard, mouse, touchpad, touchscreen, USBs, NICs, speakers and display, eg. laptops, desktops, tablets, cell phones, ...
- BIOS basic input output system - tells computer at start how to initialize various inputs and outputs
- FDD floppy disk drive - kind of removable off chip ROM, diskette
- HDD hard disk drive - kind of off chip ROM, used to save user data
- SSD solid state drive - kind of off chip ROM, unlike HDD has no moving parts, which makes it faster
- OS operating system - a set of programs containing kernel and drivers allowing user to use computer more conveniently
- FS file system - describes, which pieces of data on given ROM belong together, forming files with given beginning and end
- part partition - a logical part of a ROM, containing one FS
- RAID redundant array of inexpensive disks - a way to combine several ROMs into one larger unit, usually having some redundancy to prevent fatal damages to data
- FPGA field-programmable gate array - a kind of chip, which can be programmed to represent various hardware components
- bit - a single piece of data (0 or 1)
- nibble - 4 bits
- byte - 8 bits
- halfword - 16 bits
- word - 32 bits
- kb kilobit - 1000 bits (10^3)
- kib kibibit - 1024 bits (2^10)
- kB kilobyte - 1000 bytes (10^3)
- kiB kibibyte - 1024 bytes (2^10)
- signed - having a sign (positive or negative)
- unsigned - not having a sign (always positive)
- char - byte
- short - halfword
- long - word
- long long - 2 words
- bool boolean - (hypothetically) 1 bit
- true - 1
- false - 0
- encoding - a way to describe, what given piece of data means
- magic number - a specific number to appear in the header of the file to denote it as encoded using given encoding (used mostly on UNIX-like systems)
- little endian - data is stored in memory in a way, that least significant bit (value 1) is stored first and most significant bit is stored last
- big endian - data is stored in memory in a way, that least significant bit (value 1) is stored last and most significant bit is stored first
- variable - a piece of data
- global - existing and accesible anywhere in the program
- local - existing and accesible in some part of the program
- constant - once set, never changes
- pointer - an address of data
- array - a set of variables of the same type stored under common name
- routine - algorithm
- main - basic routine
- subroutine - additional routine
- procedure - subroutine without any return values
- function - subroutine with at least one return value
- method - subroutine being part of an object
- struct structure - a set of variables having a distinct meaning and serving a distinct purpose
- union - a piece of memory to be understood in several distint ways
- object - a set of variables and methods having a distinct meaning and serving a distinct purpose
- member - a variable or subroutine being part of an object
- address - location of given variable or routine in memory (every byte has an address)
- null - 0x00 zero address, beginning of memory, mostly used as invalid pointer
- null character - \0 a byte of value 0, often used to denote end of character array
- EoF end of file - a special character returned when program reaches end of file, usually -1
- CR carriage return - a special character telling an output to return to the beginning of the line, escape sequence \r, value 0x0d
- LF line feed - a special character teeling an output to move to the next line, escape sequence \n, value 0x0a
- EoL end of line - a special character or set of characters denoting end of line, OS specific, on modern systems usually implemented as CR (Mac OS), LF (UNIX-like inc. Mac OS X) or CRLF (Windows)
- statement - a single instruction
- expression - a statement having a value
- L-value left side value - an expression representing a given address in memory, data can be saved into it
- R-value right side value - expression
- operator - a special symbol to be understand as distinct operation (adding, substracting, ...)
- call - calling a subroutine
- argument/actual parameter - the values with which we call
- parameter/formal parameter - the kinds of value, subroutine is expecting when getting called
- return - generally both types of value subroutine returns and the actual values, sometimes specified as return type and return value
- declaration - an act of telling, what type a variable or routine is
- definition - an act of giving the variable or routine a meaning
- prototype - a declaration of routine without an immediate definition
- (preprocessor) directive - an instruction for preprocessor
- include/import - one of common directives, tells preprocessor to include another complete file at this point
- define - one of common directives, tells preprocessor to replace any instances of defined string with it's definition
- condition - an expression to be evaluated as true or false
- conditional statement - a statement that does something if it's condition is true and something else if it's false
- loop/cycle - a statement repeating it's inner block and evaluation as long as it's condition is true
- bottom-up - a way of software analysis and implementation, developer starts with the very basic things and build the solution out of them
- top-down - a way of software analysis and implementation, developer starts with the top level logic and breaks it into partial subroutines as needed
- VCS version control system - a system to control various versions of the same source code (or other files), having trackable and comparable history of all versions, makes development easier and controllable
- SCM source code management - VCS
- branch - a concept of developing something independently of other things being developed at the same time, utilized by most VCSs
- fork - a concept of developing a new version of some software independently on development done on the original software, usually with different goals
- bug tracker/issue tracker - a system to control known bugs/issues with the software and eventually solve them
- IRC internet relay chat - an oldest version of real time online chat, still avidly used by most developer groups
- ML mailing list - a tool for group email messaging on given topic, used by most developer groups
- newsgroup - an older tool similar to ML, still used in some groups nowadays
- UG usegroup/usenet newsgroup - newsgroup
- SSL secure sockets layer - a standard way of encrypting data for traversal over networks
- TLS transport layer security - a newer versions of SSL
- telnet - a distant non-encrypted access to computer
- SSH secure shell - a distant SSL/TLS encrypted access to computer
- PGP pretty good privacy - a standard way to sign and/or encrypt an email communication
- GPG GNU privacy guard - a most common PGP implementation
- GNU GNU's not UNIX - an organisation developing many FLOSS tools for UNIX-like systems replacing proprietary UNIX tools
- OSS open source software - a software with it's source publicly available, not necesarilly a FS, even though it quite often is
- FS free software - a software with permissive licences (anyone's free to change it and redistribute it)
- LS libre software - though FS usually means, the software has to be OSS as well, this term contains both concepts explicitly
- FOSS free open source software - software which is explicitly both free and open source
- FLOSS free libre open source software - a software which is explicitly all of free, libre and open source, which term is seen as higly redundant by some people
- copyright - a right to copy given thing
- copyleft - a concept of licences enforcing freedom of given thing
- GPL general public licence - a strongly copyleft licence by GNU, enforcing resharing of given thing and all of it's derivates
- LGPL lesser/library general public licence - more permissive version of GPL, allowing to be linked with proprietary code
- BSD(-style) licence - a strongly permissive licence in style of BSD
- MIT licence - a strongly permissive licence
- BSD Berkeley system distribution - a popular UNIX system
- (GNU/)Linux - a popular UNIX-like system
- Illumos - a popular UNIX system, fork of OpenSolaris
- instruction set - set of operations, given CPU architecture knows
- CISC complex instruction set computing - larger instruction set bases
- RISC reduced instruction set computing - smaller instruction set bases, should still be able to do everything CISC does by issuing several instructions
- machine language - a binary language of 0s and 1s containing direct CPU instructions, platform dependent
- machine code - a piece of software in machine language
- loader - a part of OS, loads the binary file into memory and into processor
- execution - calling a loader on given binary/interpretable file
- assembly language - a textual language usually 1:1 with instruction set, allows better human understanding of the contents, pletform dependent
- assembly (source) code - a piece of software in assembly language, source if it was written in it, or is the version used for further development (possibly original source lost etc.)
- assembler - assemblies the assembly language into machine language
- low - close to the CPU
- high - distant from CPU
- source code - a piece of software written in some language (usually not the machine language)
- virtual machine - a piece of software compiled for given architecture with specific instruction set of it's own, it interprets it's own istructions into host machine's instructions on the fly
- byte code - a piece of software written in some language and then compiled for some kind of virtual machine, machine code for given virtual architecture
- compiler - a piece of software, which translates a higher level language into machine or assembly language, calling assembler if necessary, or generally to it's final form (fe. PDF or web page for markup languages)
- linker - a piece of software linking several compiled binary files into one executable file
- ELF executable and linkable format - a (compiled) binary file for given platform, can be linked into other executables or directly executed, if it contains main (UNIX-like specific)
- preprocessor - a piece of software to process the source code before giving it to the compiler or interpret
- compiled language - a kind of higher language, which is compiled into machine code, the source code itself is platform independent (at least theoretically), but the resulting binary is not
- flashing - a process of loading a compiled binary into system's ROM, fe. microcontroller's inner ROM, cell phone's or tablet's system partitions or desktop's or laptop's BIOS chip
- interpret - a piece of software compiled for given architecture, which interprets the interpreted language's source code into the host machine's instructions on the fly
- shell/console/terminal/command line - though historically having slightly different meanings, can be safely assumed today as a program taking inputs from user's keyboard, giving them to some kind of program (usually interpret) and returning any results to the user's display in textual mode
- interpreted language - a kind of higher language, which is either distributed as source code or compiled into byte code, generally platform independent (at least theoretically)
- programming language - a kind of language allowing any thinkable operation given it's purpose and abilities of underlying platform
- general (purpose) language - language having no given purpose, being usable for any thinkable purpose
- scripting language - a kind of language allowing most higher level algorithms, but not any low level operations, like direct memory access etc., usually interpreted
- markup language - a kind of language, whose main goal is to typeset some data into some kind of presentation (eg. web page, digital typesetting, ...)
- hardware definition language - a special kind of language used to program hardware architectures on FPGAs
- mathematical language - though technically usually a programming or scripting languages, these are often seen as a special kind of languages, main purpose is to represent mathematics effeciently