Moved to Wordpress

This blog has moved to Wordpress. GOTO the new blog now.

There will be no new updates here. Most of the posts have also been expanded.

2008/12/17

Programming Glossary

The programming glossary will define some common acronyms and words used by programmers. This document will be updated semi-regularly.

Note that a lot of these definitions are for acronyms that are unrelated to computer science (many are general acronyms for internet chat, like AFAICT). The main reason for this is that I do not regularly chat and am tired of having to infer the meaning of an acronym every time I come across it.

Also note that I did not look up the common use definitions for most of these words. While a vast majority of them are correct, there may be some errors here.



ACID
Atomic, Consistent, Isolated and Durable

AFAICT
As Far As I Can Tell

AFAIK
As Far As I Know

Agile Software Development
A method of software development that emphasizes responding to changes and frequent releases. See link here.

AI
Artificial Intelligence

AOP
Aspect Oriented Programming

API
Application Programming Interface

ASCII
American Standard Code for Information Interchange. A character set encoding.

AI
Artificial Intelligence

AOP
Aspect Oriented Programming

API
Application Programming Interface

ASCII
American Standard Code for Information Interchange. A character set encoding. See link here.

AYCDISAM
All You Can Do Is Send A Message

Bikeshed
A small, usually unimportant, decision that everyone has an opinion on. See links here, here and here.

BAD
Broken As Designed. Refers to a project that meets the design requirements, however the design requirements are flawed. See link here.

BDUF
Big Design Up Front.

BSD
Berkley System Distribution.

CGI
Common Gateway Interface

COM(+)
Component Object Model (Extended). Microsoft specific. See link here.

Concatenate
Join two or more things together, end to end.

Copyleft
An Open Source term referring to the permissions granted by a license. (EDIT: Add some links to a more through definition here.)

CRUD
Create, Read, Update and Delete. See link here.

Cruft
Code, data or software of poor quality. See link here.

CS
Computer Science

DB
Database

DBMS
Database Management System.

DLL
Dynamic Linked Library. Microsoft specific. See link here.

DRY
Don't Repeat Yourself. See link here.

DSL
Domain Specific Language. A sub-language that addresses a particular niche.
Digital Subscriber Line. This is a form of broadband internet connection. This definition is rarely encountered when discussing programming.

DWIM
Do What I Mean

Elegant
Code that is clear, efficient and correct. Elegant usually refers to the design of something and is not solely applicable to code. See links here and here.

Expert Systems
A method of AI programming. (EDIT: Explain this subject in more detail)

FP
1. Functional Programming
2. Floating Point (number or arithmetic)

FPU
Floating Point Unit. See link here.

Foo Bar
Used in code examples to represent "whatever name you choose". The use of foo and bar is generally discouraged, when writing code, in favor of more descriptive names.
Example:
> def foo(bar):
.. print bar
> foo(42)
42

FTP
File Transfer Protocol

FUBAR
F***ed Up Beyond All Recognition

FWIW
For What It's Worth

GC
Garbage Collector. The system used to reclaim memory used in a program. See link here.
Garbage Collection. A method of reclaiming memory used in a program. See link here.

GP
Genetic Programming

GPL
The GNU 'General Public License'. A strong copyleft open source license.

Grok
To share the same reality or line of thinking with another physical or conceptual entity. See link here.

GUI
Graphical User Interface. Usually pronounced as gooey, but I prefer G-U-I. (EDIT: Maybe make a pronunciation section for each term?)

GUID
Globally Unique Identifier.

IANAL
I Am Not A Lawyer

IDE
Integrated Development Environment.

IIRC
If I Recall Correctly

IIUC
If I Understand Correctly

IMHO
In My Humble Opinion

IMNSHO
In My Not So Humble Opinion

IMO
In My Opinion

IPC
Interprocess Communication

ISO
International Standards Organization.

JIT
Just In Time.

KB
Knowledge Base. Usually relates to AI programming using expert systems.

KISS
Keep It Simple Stupid.

LEGB
Local, Enclosing function locals, Global, Built-in. Python's scope rules for symbol lookup. See link here.

LGB
Local, Global, Built-in. The old Python scope rules

LGPL
The GNU Limited General Public License. Similar to the GPL but allows closed source code to link to LGPL code. (EDIT: Is the wording on this correct?)

MVC
Model View Controller.

NIH
Not Invented Here.

OOP
Object Oriented Programming

Open Source
Software that allows users to access and modify its source code. (EDIT: Link to more extensive definitions. This phrase is hard to define.)

PEBKAC
Problem Exists Between Keyboard And Chair

PICNIC
Problem In Chair, Not In Computer.

PITA
Pain In The Ass

RAD
Rapid Application Development.

Regex
Regular Expression. See link here.

RCS
Revision Control System.

RDBMS
Relational Database Management System

RPC
Remote Procedure Call.

RTFM
Read The F***ing Manual

RTW
Reinvent The Wheel

Scrum
An incremental approach to software development, related to agile development. Initially was meant as an approach to the management of software development teams. See link here.

SDK
Software Development Kit. See link here.

Shebang
#!/usr/bin/env python | On Unix-like operating systems the 'shebang line' is a way to run a text file as a script if this line is the first line in the file. See link here. (EDIT: Make more clear)

SMP
Symmetric multiprocessing. See link here.

Source Code (or simply Source)
The text file containing the program commands of a program. (EDIT: Define better and add some links to more extensive definitions.)

SSL
Secure Socket Layer.

TCO
Tail Call Optimization

TIMTOWTDI
There Is More Than One Way To Do It. Usually pronounced Tim Toady. See link here.

TOOWTDI
There's Only One Way To Do It. See link here.

UI
User Interface.

UID
Unique Identifier.

Unicode
A character set encoding that represents characters from most languages. See link here.

WRT
With Respect To

WTDI
Way To Do It.

XP
Extreme Programming. A method of software development. See link here.

YAGNI
You Aren't Gonna Need It. See link here.

YMMV
Your Mileage May Vary







More Glossaries

Hypertext Glossary of Computer Science related Acronyms and selected Terms

UW Milwaukee Common It Acronyms

Computer Acronyms

No comments:

Post a Comment