Site hosted by Angelfire.com: Build your free website today!

Akuma Presents...

Programming Jargon...

Abstraction
The process of picking out (abstracting) common features of objects and procedures. A programmer would use abstraction, for example, to note that two functions perform almost the same task and can be combined into a single function. Abstraction is one of the most important techniques in software engineering and is closely related to two other important techniques -- encapsulation and information hiding. All three techniques are used to reduce complexity.

ActiveX
A loosely defined set of technologies developed by Microsoft. ActiveX is an outgrowth of two other Microsoft technologies called OLE (Object Linking and Embedding) and COM (Component Object Model). As a moniker, ActiveX can be very confusing because it applies to a whole set of COM-based technologies. Most people, however, think only of ActiveX controls, which represent a specific way of implementing ActiveX technologies.

Algorithm
A formula or set of steps for solving a particular problem. To be an algorithm, a set of rules must be unambiguous and have a clear stopping point. Algorithms can be expressed in any language, from natural languages like English or French to programming languages like FORTRAN.

We use algorithms every day. For example, a recipe for baking a cake is an algorithm. Most programs, with the exception of some artificial intelligence applications, consist of algorithms. Inventing elegant algorithms -- algorithms that are simple and require the fewest steps possible -- is one of the principal challenges in programming.

Alpha Version
An very early version of a software product that may not contain all of the features that are planned for the final version. Typically, software goes through two stages of testing before it is considered finished. The first stage, called alpha testing, is often performed only by users within the organization developing the software. The second stage, called beta testing , generally involves a limited number of external users.

Base Address
An address that serves as a reference point for other addresses. For example, a base address could indicate the beginning of a program. The address of every instruction in the program could then be specified by adding an offset to the base address. For example, the address of the fifth instruction would be the base address plus 5.

Benchmark
A test used to compare performance of hardware and/or software. Many trade magazines have developed their own benchmark tests, which they use when reviewing a class of products. When comparing benchmark results, it is important to know exactly what the benchmarks are designed to test. A benchmark that tests graphics speed, for example, may be irrelevant to you if the type of graphical applications you use are different from those used in the test.

Beta Test
A test for a computer product prior to commercial release. Beta testing is the last stage of testing, and normally involves sending the product to beta test sites outside the company for real-world exposure. Beta testing is often precede by a round of testing called alpha testing.

Big-Endian
Refers to which bytes are most significant in multi-byte data types. In big-endian architectures, the leftmost bytes (those with a lower address) are most significant. In little-endian architectures, the rightmost bytes are most significant.

Many mainframe computers, particularly IBM mainframes, use a big-endian architecture. Most modern computers, including PCs, use the little-endian system. The PowerPC system is bi-endian because it can understand both systems.

Converting data between the two systems is sometimes referred to as the NUXI problem. Imagine the word UNIX stored in two 2-byte words. In a Big-Endian systems, it would be stored as UNIX. In a little-endian system, it would be stored as NUXI.

The terms big-endian and little-endian are derived from the Lilliputians of Gulliver's Travels, whose major political issue was whether soft-boiled eggs should be opened on the big side or the little side. Likewise, the big-/little-endian computer debate has much more to do with political issues than technological merits.

Bloatware
A sarcastic term that refers to software that has lots of features and requires considerable disk space and RAM. As the cost of RAM and disk storage has decreased, there has been a growing trend among software developers to disregard the size of applications. Some people refer to this trend as creeping featuritis. If creeping featuritis is the symptom, bloatware is the disease.

Bomb
To fail. The term bomb usually refers to a program hanging or ending prematurely. Note that bombing is usually less serious than crashing, because bombing refers to a single program, whereas crashing refers to the entire system. The two terms, however, are not always used consistently.

The Apple Macintosh computer actually has a bomb message that sometimes appears just before the system crashes.

BPDU
Acronym for bridge protocol data unit. BPDUs are data messages that are exchanged across the switches within an extended LAN that uses a spanning tree protocol topology. BPDU packets contain information on ports, addresses, priorities and costs and ensure that the data ends up where it was intended to go. BPDU messages are exchanged across bridges to detect loops in a network topology. The loops are then removed by shutting down selected bridge interfaces and placing redundant switch ports in a backup, or blocked, state.

Brute Force
Refers to a programming style that does not include any shortcuts to improve performance, but instead relies on sheer computing power to try all possibilities until the solution to a problem is found. A classic example is the traveling salesman problem (TSP). Suppose a salesman needs to visit 10 cities across the country. How does one determine the order in which cities should be visited such that the total distance traveled is minimized? The brute force solution is simply to calculate the total distance for every possible route and then select the shortest one. This is not particularly efficient because it is possible to eliminate many possible routes through clever algorithms.

Although brute force programming is not particularly elegant, it does have a legitimate place in software engineering. Since brute force methods always return the correct result -- albeit slowly -- they are useful for testing the accuracy of faster algorithms. In addition, sometimes a particular problem can be solved so quickly with a brute force method that it doesn't make sense to waste time devising a more elegant solution.

Bubble Sort
A simple but popular sorting algorithm. Bubble sorting is used frequently as a programming exercise because it is relatively easy to understand. It is not, however, particularly efficient. Other sorting algorithms, such as A href="heap.sort.html">heap sorts, merge sorts and quicksorts, are used more often in real applications.

Bug
An error or defect in software or hardware that causes a program to malfunction. According to folklore, the first computer bug was an actual bug. Discovered by Lieutenant Grace Hopper in 1945 at Harvard, a moth trapped between two electrical relays of the Mark II Aiken Relay Calculator caused the whole machine to shut down.

Bytecode
The compiled format for Java programs. Once a Java program has been converted to bytecode, it can be transferred across a network and executed by Java Virtual Machine (VM). Bytecode files generally have a .class extension.

Chad
Confetti-like pieces of paper formed from punch cards or paper tapes. May have been derived from the word Chadless keypunch, which did not create the confetti-like substance; therefore, it was assumed the stuff created must then be called chad.

U.S. Navy teletype machines produced chad from paper tape since before the Korean War. Chad was somewhat of a nuisance because it always got into sailors' hair, clothes, and shoes. On occasion, though, they would throw chad parties for departing sailors in which they would cover their shipmates in chad.

What seems to be jargon may in fact be considered mainstream because it's been reported that the word chad was used (1993) in the directions for a card-based voting machine in California.

Choke Packet
A specialized packet that is used for flow control along a network. A router detects congestion by measuring the percentage of buffers in use, line utilization and average queue lengths. When it detects congestion, it sends choke packets across the network to all the data sources associated with the congestion. The sources respond by reducing the amount of data they are sending.

CICS
Short for Customer Information Control System, a TP monitor from IBM that was originally developed to provide transaction processing for IBM mainframes. It controls the interaction between applications and users and lets programmers develop screen displays without detailed knowledge of the terminals being used.

CICS is also available on non-mainframe platforms including the RS/6000, AS/400 and OS/2 -based PCs.

Code
(1) A set of symbols for representing something. For example, most computers use ASCII codes to represent characters.

(2) Written computer instructions. The term code is somewhat colloquial. For example, a programmer might say: "I wrote a lot of code this morning" or "There's one piece of code that doesn't work."

Code can appear in a variety of forms. The code that a programmer writes is called source code. After it has been compiled, it is called object code. Code that is ready to run is called executable code or machine code.

Constant
In programming, a constant is a value that never changes. The other type of values that programs use is variables, symbols that can represent different values throughout the course of a program.

Constants are also used in spreadsheet applications to place non-changing values in cells. In contrast, a spreadsheet formula can produce a different value each time the spreadsheet is opened or changed.

Contiguous
Immediately adjacent. For example, contiguous sectors on a disk are sectors that come one after the other. Frequently, a file stored on disk can become fragmented, which means that it is stored on non-contiguous sectors.

Control
(1) An object in a window or dialog box. Examples of controls include push-buttons, scroll bars, radio buttons, and pull-down menus.

(2) An OLE or ActiveX object.

Cron
A Unix command for scheduling jobs to be executed sometime in the future. A cron is normally used to schedule a job that is executed periodically - for example, to send out a notice every morning. It is also a daemon process, meaning that it runs continuously, waiting for specific events to occur.

Cross-Compiler
A compiler that runs on one computer but produces object code for a different type of computer. Cross compilers are used to generate software that can run on computers with a new architecture or on special-purpose devices that cannot host their own compilers.

Data Type
In programming, classification of a particular type of information. It is easy for humans to distinguish between different types of data. We can usually tell at a glance whether a number is a percentage, a time, or an amount of money. We do this through special symbols -- %, :, and $ -- that indicate the data's type. Similarly, a computer uses special internal codes to keep track of the different types of data it processes.

Most programming languages require the programmer to declare the data type of every data object, and most database systems require the user to specify the type of each data field. The available data types vary from one programming language to another.

Debug
To find and remove errors (bugs) from a program or design.

Declare
In programming, to declare is to define the name and data type of a variable or other programming construct. Many programming languages, including C and Pascal, require you to declare variables before using them.

Delimiter
A punctuation character or group of characters that separates two names or two pieces of data, or marks the beginning or end of a programming construct. Delimiters are used in almost every computer application. For example, in specifying DOS pathnames, the backslash (\) is the delimiter that separates directories and filenames. Other common delimiters include the comma (,), semicolon (;), quotes ("), and braces ({}).

Dhrystone
Developed in 1984 by R.P. Wecker, Dhrystone is a benchmark program written in C or Pascal (and now even in Java) that tests a system's integer performance. The program is CPU bound, performing no I/O functions or operating system calls.

Dhrystones per second is the metric used to measure the number of times the program can run in a second.

DLL
Short for Dynamic Link Library, a library of executable functions or data that can be used by a Windows application. Typically, a DLL provides one or more particular functions and a program accesses the functions by creating either a static or dynamic link to the DLL. A static link remains constant during program execution while a dynamic link is created by the program as needed. DLLs can also contain just data. DLL files usually end with the extension .dll,.exe., drv, or .fon.

A DLL can be used by several applications at the same time. Some DLLs are provided with the Windows operating system and available for any Windows application. Other DLLs are written for a particular application and are loaded with the application.

Dummy
A placeholder. A dummy variable , for example, is a variable that doesn't contain any useful data, but it does reserve space that a real variable will use later.

Dump
The act of copying raw data from one place to another with little or no formatting for readability. Usually, dump refers to copying data from main memory to a display screen or a printer. Dumps are useful for diagnosing bugs. After a program fails, you can study the dump and analyze the contents of memory at the time of the failure. Dumps are usually output in a difficult-to-read form (that is, binary, octal, or hexadecimal), so a dump will not help you unless you know exactly what to look for.

To output an image of computer memory.

Dynamic Variable
In programming, a dynamic variable is a variable whose address is determined when the program is run. In contrast, a static variable has memory reserved for it at compilation time.

Encapsulation
(1) In programming, the process of combining elements to create a new entity. For example, a procedure is a type of encapsulation because it combines a series of computer instructions. Likewise, a complex data type, such as a record or class, relies on encapsulation. Object-oriented programming languages rely heavily on encapsulation to create high-level objects. Encapsulation is closely related to abstraction and information hiding.

(2) In networking, same as tunneling.

Exception
A condition, often an error, that causes the program or microprocessor to branch to a different routine. The terms interrupt and exception are very close in meaning. Both can be used to refer to either hardware or software. The only real difference is that an exception usually indicates an error condition.

Fatal Error
An error that causes a program to abort. Sometimes a fatal error returns you to the operating system. When a fatal error occurs, you may lose whatever data the program was currently processing.

Fatal Exception Error
A type of program error that requires that the program responsible for the error be shut down. Software applications communicate with operating systems and other applications through layers of code. An exception is an error alert that communicates the problem across the layers. When an error is detected, the exception is sent through the layers of code one by one until code is found that can handle the error. If no code has been included in any layer of the program to handle the specific error, the exception will travel through all the layers, create a fatal exception error, terminate the application and may even shut down the operating system.

For example, a program may request that the operating system reserve a block of memory for the program's use. If the operating system is unable to honor the request - if the memory request is too large or if there is not enough available memory - it will send a memory exception to the layer that made the request. The exception will continue to travel through the layers until it is dealt with. If the program does not catch the exception, because the programmer did not write code to handle that particular exception, the exception makes its way to the top layer and the operating system recognizes it as an unhandled exception and shuts down the program, resulting in a fatal exception error. Well-designed software, however, handles all exceptions.

Filter
(1) A program that accepts a certain type of data as input, transforms it in some manner, and then outputs the transformed data. For example, a program that sorts names is a filter because it accepts the names in unsorted order, sorts them, and then outputs the sorted names.

Utilities that allow you to import or export data are also sometimes called filters.

(2) A pattern through which data is passed. Only data that matches the pattern is allowed to pass through the filter.

(3) In paint programs and image editors, a filter is an effect that can be applied to a bit map. Some filters mimic conventional photographic filters, but many transform images in unusual ways. A pointillism filter, for example, can make a digitized photograph look like a pointillistic painting.

Flag
(1) A software or hardware mark that signals a particular condition or status. A flag is like a switch that can be either on or off. The flag is said to be set when it is turned on.

(2) A special mark indicating that a piece of data is unusual. For example, a record might contain an error flag to indicate that the record consists of unusual, probably incorrect, data.

To mark an object to indicate that a particular event has occurred or that the object marked is unusual is some way.

Flow Control
(1) In communications, the process of adjusting the flow of data from one device to another to ensure that the receiving device can handle all of the incoming data. This is particularly important where the sending device is capable of sending data much faster than the receiving device can receive it.

There are many flow control mechanisms. One of the most common flow control protocols for asynchronous communication is called xon-xoff. In this case, the receiving device sends a an xoff message to the sending device when its buffer is full. The sending device then stops sending data. When the receiving device is ready to receive more data, it sends an xon signal.

Flow control can be implemented in hardware or software, or a combination of both.

(2) In programming, the statements and other constructs that control the order in which operations are executed. For example, common looping statements such as for…next and while are known as flow control statements. Branching statements, such as if…then are also part of a programming language's flow control mechanism.

Front End
(1) For software applications, front end is the same as user interface.

(2) In client/server applications, the client part of the program is often called the front end and the server part is called the back end.

(3) Compilers, the programs that translate source code into object code, are often composed of two parts: a front end and a back end. The front end is responsible for checking syntax and detecting errors, whereas the back end performs the actual translation into object code.

Functional Specification
A formal description of a software system that is used as a blueprint for implementing the program. At minimum, a functional specification should precisely state the purpose (e.g., the function) of the software. Depending on the software engineering methodology used, the functional specification might also provide implementation details, such as how the project is divided into modules and how the different modules interact. In addition, a functional specification often describes the software from the user's perspective -- how the user interface appears and how a user would use the program to perform specific functions.

Garbage In, Garbage Out
Often abbreviated as GIGO, this is a famous computer axiom meaning that if invalid data is entered into a system, the resulting output will also be invalid. Although originally applied to computer software, the axiom holds true for all systems, including, for example, decision-making systems.

Geek
Short for computer geek, an individual with a passion for computers, to the exclusion of other normal human interests. Depending on the context, it can be used in either a derogatory or affectionate manner. Basically, geek and nerd are synonymous.

Genetic Programming
A type of programming that utilizes the same properties of natural selection found in biological evolution. The general idea behind genetic programming is to start with a collection of functions and randomly combine them into programs; then run the programs and see which gives the best results; keep the best ones (natural selection), mutate some of the others, and test the new generation; repeat this process until a clear best program emerges.

Glitch
A malfunction. Glitch is sometimes used as a synonym for bug, but more often it refers to a hardware problem.

Hack
An inelegant and usually temporary solution to a problem.

To modify a program, often in an unauthorized manner, by changing the code itself.

Hacker
A slang term for a computer enthusiast, i.e., a person who enjoys learning programming languages and computer systems and can often be considered an expert on the subject(s). Among professional programmers, depending on how it used, the term can be either complimentary or derogatory, although it is developing an increasingly derogatory connotation. The pejorative sense of hacker is becoming more prominent largely because the popular press has coopted the term to refer to individuals who gain unauthorized access to computer systems for the purpose of stealing and corrupting data. Hackers, themselves, maintain that the proper term for such individuals is cracker.

Hard Coded
Unchangeable. Hard-coded features are built into the hardware or software in such a way that they cannot be modified.

Hardwired
Refers to elements of a program or device that cannot be changed. Originally, the term was used to describe functionality that was built into the circuitry (i.e., the wires) of a device. Nowadays, however, the term is also used to describe constants built into software.

Heap Sort
A sorting algorithm that works by first organizing the data to be sorted into a special type of binary tree called a heap. The heap itself has, by definition, the largest value at the top of the tree, so the heap sort algorithm must also reverse the order.

A heap sort is especially efficient for data that is already stored in a binary tree. In most cases, however, the quick sort algorithm is more efficient.

Heuristic Programming
A branch of artificial intelligence, which uses heuristics -- common-sense rules drawn from experience -- to solve problems. This is in contrast to algorithmic programming, which is based on mathematically provable procedures. Heuristic programming is characterized by programs that are self-learning; they get better with experience. Heuristic programs do not always reach the very best result but usually produce a good result. Many expert systems use heuristic programming.

High Performance Computing
A branch of computer science that concentrates on developing supercomputers and software to run on supercomputers. A main area of this discipline is developing parallel processing algorithms and software: programs that can be divided into little pieces so that each piece can be executed simultaneously by separate processors.

Information Hiding
The process of hiding details of an object or function. Information hiding is a powerful programming technique because it reduces complexity. One of the chief mechanisms for hiding information is encapsulation -- combining elements to create a larger entity. The programmer can then focus on the new object without worrying about the hidden details. In a sense, the entire hierarchy of programming languages -- from machine languages to high-level languages -- can be seen as a form of information hiding.

Information hiding is also used to prevent programmers from changing --- intentionally or unintentionally -- parts of a program.

Intelligent Agent
Programs, used extensively on the Web, that perform tasks such as retrieving and delivering information and automating repetitive tasks. More than 50 companies are currently developing intelligent agent software or services, including Firefly and WiseWire.

Agents are designed to make computing easier. Currently they are used as Web browsers, news retrieval mechanisms, and shopping assistants. By specifying certain parameters, agents will "search" the Internet and return the results directly back to your PC.

Push technology relies on agents to deliver pre-selected information to your desktop. Some intelligent agents are also used as tools to track Web behavior: they can even "watch" as your surf the Net and record how often you visit certain sites. Later, they can be used to automatically download your favorite sites, let you know when your favorite site has been updated, and even tailor specific pages to suit your tastes.

Interprocess Communication
A capability supported by some operating systems that allows one process to communicate with another process. The processes can be running on the same computer or on different computers connected through a network.

IPC enables one application to control another application, and for several applications to share the same data without interfering with one another. IPC is required in all multiprocessing systems, but it is not generally supported by single-process operating systems such as DOS. OS/2 and MS-Windows support an IPC mechanism called DDE.

ISO 9000
A family of standards approved by the International Standards Organization (ISO) that define a quality assurance program. Companies that conform to these standards can receive ISO 9000 certification. This doesn't necessarily mean that the company's products have a high quality; only that the company follows well-defined procedures for ensuring quality products. Increasingly, software buyers are requiring ISO 9000 certification from their suppliers.

Iteration
A single pass through a group of instructions. Most programs contain loops of instructions that are executed over and over again. The computer iterates through the loop, which means that it repeatedly executes the loop.

J2EE
Short for Java 2 Platform Enterprise Edition. J2EE is a platform-independent, Java-centric environment from Sun for developing, building and deploying Web-based enterprise applications online. The J2EE platform consists of a set of services, APIs, and protocols that provide the functionality for developing multitiered, Web-based applications.

JDBC
Short for Java Database Connectivity, a Java API that enables Java programs to execute SQL statements. This allows Java programs to interact with any SQL-compliant database. Since nearly all relational database management systems (DBMSs) support SQL, and because Java itself runs on most platforms, JDBC makes it possible to write a single database application that can run on different platforms and interact with different DBMSs.

JDBC is similar to ODBC, but is designed specifically for Java programs, whereas ODBC is language-independent.

JDBC was developed by JavaSoft, a subsidiary of Sun Microsystems.

JVM
Acronym for Java Virtual Machine. An abstract computing machine, or virtual machine, JVM is a platform-independent programming language that converts Java bytecode into machine language and executes it. Most programming languages compile source code directly into machine code that is designed to run on a specific microprocessor architecture or operating system, such as Windows or UNIX. A JVM -- a machine within a machine -- mimics a real Java processor, enabling Java bytecode to be executed as actions or operating system calls on any processor regardless of the operating system. For example, establishing a socket connection from a workstation to a remote machine involves an operating system call. Since different operating systems handle sockets in different ways, the JVM translates the programming code so that the two machines that may be on different platforms are able to connect.

KLOC
Short for thousands (kilo) of lines of code. KLOC is a measure of the size of a computer program. The size is determined by measuring the number of lines of source code a program has. High-level languages such as C++, will compile into more lines of machine code than an assembly language, which is a low-level language.

Kludge
Pronounced klooj, a derogatory term that refers to a poor design. Like hacks, kludges use nonstandard techniques. But, whereas a hack can connote a clever solution to a problem, a kludge always implies that the solution is inelegant.

Library
(1) A collection of files.

(2) In programming, a library is a collection of precompiled routines that a program can use. The routines, sometimes called modules, are stored in object format. Libraries are particularly useful for storing frequently used routines because you do not need to explicitly link them to every program that uses them. The linker automatically looks in libraries for routines that it does not find elsewhere. In MS-Windows environments, library files have a .DLL extension.

Line
(1) A hardware circuit connecting two devices.

(2) In programming, a single program statement.

(3) In caches, a single data entry. A cache line can contain data from one or more addresses. Modern PC motherboards, for example, generally have an L2 cache where each line is 32 bytes wide.

Listing
A printout of text, usually a source program.

Localization
The process of adapting software for a particular country or region. For example, the software must support the character set of the local language and must be configured to present numbers and other values in the local format. Localizing a word processor might require adding a new spell checker that recognizes words in the local language.

Software companies that wish to sell their software internationally must invest considerable money and energy in localization efforts. There are also companies that specialize in localizing software for third parties.

Loop
In programming, a loop is a series of instructions that is repeated until a certain condition is met. Each pass through the loop is called an iteration. Loops constitute one of the most basic and powerful programming concepts.

Macro
(1) A symbol, name, or key that represents a list of commands, actions, or keystrokes. Many programs allow you to create macros so that you can enter a single character or word to perform a whole series of actions.

You can also use macros to enter words or phrases that you use frequently. For example, you could define a macro to contain all the keystrokes necessary to begin a letter -- your name, address, and a code that inserts the current date. Then, whenever you write a letter, you just press the macro key to include the letter header.

In a way, macros are like simple programs or batch files. Some applications support sophisticated macros that even allow you to use variables and flow control structures such as loops.

(2) In dBASE programs, a macro is a variable that points to another variable where the data is actually stored. In most other applications, this would be called a link.

Mask
A filter that selectively includes or excludes certain values. For example, when defining a database field, it is possible to assign a mask that indicates what sort of value the field should hold. Values that do not conform to the mask cannot be entered.

Memory Leak
A bug in a program that prevents it from freeing up memory that it no longer needs. As a result, the program grabs more and more memory until it finally crashes because there is no more memory left.

MPP
Short for massively parallel processing, a type of computing that uses many separate CPUs running in parallel to execute a single program. MPP is similar to symmetric processing (SMP), with the main difference being that in SMP systems all the CPUs share the same memory, whereas in MPP systems, each CPU has its own memory. MPP systems are therefore more difficult to program because the application must be divided in such a way that all the executing segments can communicate with each other. On the other hand, MPP don't suffer from the bottleneck problems inherent in SMP systems when all the CPUs attempt to access the same memory at once.

Mutex
(1) Short for mutual exclusion object. In computer programming, a mutex is a program object that allows multiple program threads to share the same resource, such as file access, but not simultaneously. When a program is started, a mutex is created with a unique name. After this stage, any thread that needs the resource must lock the mutex from other threads while it is using the resource. The mutex is set to unlock when the data is no longer needed or the routine is finished.

(2) When spelled MuTeX, a package of macros for the TeX typesetting system that supports musical notation. MuTeX was written by Andrea Steinbach and Angelika Schofer, as a master's thesis at Rheinische Friedrich-Wilhelms University.

Name
A sequence of one or more characters that uniquely identifies a file, variable, account, or other entity. Computer systems impose various rules about naming objects. For example, there is often a limit to the number of characters you can use, and not all characters are allowed.

Names are sometimes called identifiers.

Nesting
Embedding one object in another object of the same type. Nesting is quite common in programming. It also occurs in applications. For example, many word processing applications allow you to embed (nest) one document inside another.

OCX
Short for OLE Custom control, an independent program module that can be accessed by other programs in a Windows environment. OCX controls end with a .ocx extension. OCX controls represent Microsoft's second generation of control architecture, the first being VBX controls written in Visual Basic.

Both VBX and OCX controls have now been superseded by ActiveX controls. However, ActiveX is backward compatible with OCX controls, which means that ActiveX containers, such as Microsoft's Internet Explorer, can execute OCX components.

Optimize
(1) In programming, to fine-tune a program so that it runs more quickly or takes up less space.

(2) When applied to disks, the term means the same as defragment. See under fragmentation.

3) To configure a device or application so that it performs better.

Overhead
Use of computer resources for performing a specific feature. Typically, the term is used to describe a function that is optional, or an enhancement to an existing application. For example, maintaining an audit trail might result in 10% overhead, meaning that the program will run 10% slower when the audit trail is turned on. Programmers often need to weigh the overhead of new features before implementing them.

Parse
In linguistics, to divide language into small components that can be analyzed. For example, parsing this sentence would involve dividing it into words and phrases and identifying the type of each component (e.g., verb, adjective, or noun).

Parsing is a very important part of many computer science disciplines. For example, compilers must parse source code to be able to translate it into object code. Likewise, any application that processes complex commands must be able to parse the commands. This includes virtually all end-user applications.

Parsing is often divided into lexical analysis and semantic parsing. Lexical analysis concentrates on dividing strings into components, called tokens, based on punctuation and other keys. Semantic parsing then attempts to determine the meaning of the string.

Parser
A program that dissects source code so that it can be translated into object code.

Patch
A temporary fix to a program bug. A patch is an actual piece of object code that is inserted into (patched into) an executable program.

Primitive
A low-level object or operation from which higher-level, more complex objects and operations can be constructed. In graphics, primitives are basic elements, such as lines, curves, and polygons, which you can combine to create more complex graphical images. In programming, primitives are the basic operations supported by the programming language. A programmer combines these primitives to create more complex operations, which are packaged as functions, procedures, and methods.

Program
An organized list of instructions that, when executed, causes the computer to behave in a predetermined manner. Without programs, computers are useless.

A program is like a recipe. It contains a list of ingredients (called variables) and a list of directions (called statements) that tell the computer what to do with the variables. The variables can represent numeric data, text, or graphical images.

There are many programming languages -- C, C++, Pascal, BASIC, FORTRAN, COBOL, and LISP are just a few. These are all high-level languages. One can also write programs in low-level languages called assembly languages, although this is more difficult. Low-level languages are closer to the language used by a computer, while high-level languages are closer to human languages.

Eventually, every program must be translated into a machine language that the computer can understand. This translation is performed by compilers, interpreters, and assemblers.

When you buy software, you normally buy an executable version of a program. This means that the program is already in machine language -- it has already been compiled and assembled and is ready to execute.

Programmer
(1) An individual who writes programs.

(2) A device that writes a program onto a PROM chip.

Property
Characteristic of an object. In many programming languages, the term property is used to describe attributes associated with a data structure.

Refactoring
Improving the design of existing software code. Refactoring doesn't change the observable behavior of the software; it improves its internal structure. For example, if a programmer wants to add new functionality to a program, he may decide to refactor the program first to simplify the addition of new functionality in order to prevent software entropy.

Regression Testing
The selective retesting of a software system that has been modified to ensure that any bugs have been fixed and that no other previously-working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software. Also referred to as verification testing, regression testing is initiated after a programmer has attempted to fix a recognized problem or has added source code to a program that may have inadvertently introduced errors. It is a quality control measure to ensure that the newly-modified code still complies with its specified requirements and that unmodified code has not been affected by the maintenance activity.

Reverse Engineering
The process of recreating a design by analyzing a final product. Reverse engineering is common in both hardware and software. Several companies have succeeded in producing Intel-compatible microprocessors through reverse engineering. Whether reverse engineering is legal or not depends on who you ask. The courts have not yet made a definitive ruling.

Runtime
Occurring while a program is executing. For example, a runtime error is an error that occurs during program execution and a runtime library is a library of routines that are bound to the program during execution. In contrast, compile-time refers to events that occur while a program is being compiled.

Runtime Error
An error that occurs during the execution of a program. In contrast, compile-time errors occur while a program is being compiled. Runtime errors indicate bugs in the program or problems that the designers had anticipated but could do nothing about. For example, running out of memory will often cause a runtime error.

Note that runtime errors differ from bombs or crashes in that you can often recover gracefully from a runtime error.

Scalable
(1) A popular buzzword that refers to how well a hardware or software system can adapt to increased demands. For example, a scalable network system would be one that can start with just a few nodes but can easily expand to thousands of nodes. Scalability can be a very important feature because it means that you can invest in a system with confidence you won't outgrow it.

(2) Refers to anything whose size can be changed. For example, a font is said to be scalable if it can be represented in different sizes.

Script
Another term for macro or batch file, a script is a list of commands that can be executed without user interaction. A script language is a simple programming language with which you can write scripts.

Apple Computer uses the term script to refer to programs written in its HyperCard or AppleScript language.

SDK
Short for software development kit, a programming package that enables a programmer to develop applications for a specific platform. Typically an SDK includes one or more APIs, programming tools, and documentation.

Semantics
In linguistics, the study of meanings. In computer science, the term is frequently used to differentiate the meaning of an instruction from its format. The format, which covers the spelling of language components and the rules controlling how components are combined, is called the language's syntax. For example, if you misspell a command, it is a syntax error. If, on the other hand, you enter a legal command that does not make any sense in the current context, it is a semantic error.

Semaphore
A hardware or software flag. In multitasking systems, a semaphore is a variable with a value that indicates the status of a common resource. Its used to lock the resource that is being used. A process needing the resource checks the semaphore to determine the resource's status and then decides how to proceed.

Simulation
The process of imitating a real phenomenon with a set of mathematical formulas. Advanced computer programs can simulate weather conditions, chemical reactions, atomic reactions, even biological processes. In theory, any phenomena that can be reduced to mathematical data and equations can be simulated on a computer. In practice, however, simulation is extremely difficult because most natural phenomena are subject to an almost infinite number of influences. One of the tricks to developing useful simulations, therefore, is to determine which are the most important factors.

In addition to imitating processes to see how they behave under different conditions, simulations are also used to test new theories. After creating a theory of causal relationships, the theorist can codify the relationships in the form of a computer program. If the program then behaves in the same way as the real process, there is a good chance that the proposed relationships are correct.

Socket
(1) In UNIX and some other operating systems, a software object that connects an application to a network protocol. In UNIX, for example, a program can send and receive TCP/IP messages by opening a socket and reading and writing data to and from the socket. This simplifies program development because the programmer need only worry about manipulating the socket and can rely on the operating system to actually transport messages across the network correctly. Note that a socket in this sense is completely soft - it's a software object, not a physical component.

(2) A receptacle into which a plug can be inserted.

(3) A receptacle for a microprocessor or other hardware component.

Software Engineer
A software engineer is a licensed professional engineer who is schooled and skilled in the application of engineering discipline to the creation of software. A software engineer is often confused with a programmer, but the two are vastly different disciplines. While a programmer creates the codes that make a program run, a software engineer creates the designs the programmer implements. By law no person may use the title "engineer" (of any type) unless the person holds a professional engineering license from a state licensing board and are in good standing. A software engineer is also held accountable to a specific code of ethics.

Software Engineering
The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting.

Software Entropy
The tendency for software, over time, to become difficult and costly to maintain. A software system that undergoes continuous change, such as having new functionality added to its original design, will eventually become more complex and can become disorganized as it grows, losing its original design structure. In theory, it may be better to redesign the software in order to support the changes rather than building on the existing program, but redesigning the software is more work because redesigning the existing software will introduce new bugs and problems.

Stateless
Having no information about what occurred previously. Most modern applications maintain state, which means that they remember what you were doing last time you ran the application, and they remember all your configuration settings. This is extremely useful because it means you can mold the application to your working habits.

The World Wide Web, on the other hand, is intrinsically stateless because each request for a new Web page is processed without any knowledge of previous pages requested. This is one of the chief drawbacks to the HTTP protocol. Because maintaining state is extremely useful, programmers have developed a number of techniques to add state to the World Wide Web. These include server APIs, such as NSAPI and ISAPI, and the use of cookies.

STP
Acronym for Spanning Tree Protocol. STP, a link management protocol, is part of the IEEE 802.1 standard for media access control bridges. Using the spanning tree algorithm, STP provides path redundancy while preventing undesirable loops in a network that are created by multiple active paths between stations. Loops occur when there are alternate routes between hosts. To establish path redundancy, STP creates a tree that spans all of the switches in an extended network, forcing redundant paths into a standby, or blocked, state. STP allows only one active path at a time between any two network devices (this prevents the loops) but establishes the redundant links as a backup if the initial link should fail. If STP costs change, or if one network segment in the STP becomes unreachable, the spanning tree algorithm reconfigures the spanning tree topology and reestablishes the link by activating the standby path. Without spanning tree in place, it is possible that both connections may be simultaneously live, which could result in an endless loop of traffic on the LAN.

Systems Analyst
A programmer or consultant who designs and manages the development of business applications. Typically, systems analysts are more involved in design issues than in day-to-day coding. However, systems analyst is a somewhat arbitrary title, so different companies define the role differently.

Systems Integrator
An individual or company that specializes in building complete computer systems by putting together components from different vendors. Unlike software developers, systems integrators typically do not produce any original code. Instead they enable a company to use off-the-shelf hardware and software packages to meet the company's computing needs.

Time-Out
An interrupt signal generated by a program or device that has waited a certain length of time for some input but has not received it. Many programs perform time-outs so that the program does not sit idle waiting for input that may never come. For example, automatic bank-teller machines perform a time-out if you do not enter your password quickly enough.

Tweak
To make small changes that fine-tune a piece of software or hardware. Tweaking sometimes refers to changing the values of underlying variables slightly to make the results of a program coincide with desired results. In this case, tweaking is not always a good thing since it undermines the integrity of the program.

Two-Tier
Refers to client/server architectures in which the user interface runs on the client and the database is stored on the server. The actual application logic can run on either the client or the server. A newer client/server architecture, called a three-tier architecture introduces a middle tier for the application logic.

VBX
Short for Visual Basic custom control, a reusable software component designed for use in many different applications. While VBXs can be used in other environments, they were initially created for developing Windows applications with Visual Basic. An application developer can use a number of selected VBXs to quickly develop an application. While similar to objects, VBXs do not have two of the properties (inheritance and polymorphism) required by true object-oriented systems.

Many different companies offer specialized VBXs for tasks such as controlling instruments or image handling. However, VBXs are being superseded by ActiveX controls, which are more flexible.

Virtual Machine
A self-contained operating environment that behaves as if it is a separate computer. For example, Java applets run in a Java virtual machine (VM) that has no access to the host operating system.

White Box Testing
Also known as glass box, structural, clear box and open box testing. A software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs. The test is accurate only if the tester knows what the program is supposed to do. He or she can then see if the program diverges from its intended goal. White box testing does not account for errors caused by omission, and all visible code must also be readable.

For a complete software examination, both white box and black box tests are required.

Word
(1) In word processing, any group of characters separated by spaces or punctuation on both sides. Whether it is a real word or not is unimportant to the word processor.

(2) In programming, the natural data size of a computer. The size of a word varies from one computer to another, depending on the CPU. For computers with a 16-bit CPU, a word is 16 bits (2 bytes). On large mainframes, a word can be as long as 64 bits (8 bytes).

Some computers and programming languages distinguish between shortwords and longwords. A shortword is usually 2 bytes long, while a longword is 4 bytes.

3) When capitalized, short for Microsoft Word.

Zombie
A computer that has been implanted with a daemon that puts it under the control of a malicious hacker without the knowledge of the computer owner. Zombies are used by malicious hackers to launch DoS attacks. The hacker sends commands to the zombie through an open port. On command, the zombie computer sends an enormous amount of packets of useless information to a targeted Web site in order to clog the site's routers and keep legitimate users from gaining access to the site. The traffic sent to the Web site is confusing and therefore the computer receiving the data spends time and resources trying to understand the influx of data that has been transmitted by the zombies. Compared to programs such as viruses or worms that can eradicate or steal information, zombies are relatively benign as they temporarily cripple Web sites by flooding them with information and do not compromise the site's data. Such prominent sites as Yahoo!, Amazon and CNN.com were brought down in 2000 by zombie DoS attacks.

index . data . network . graphics . software . hardware

standards . programming . communications . operating systems . links

Website Created By Koded.com