Home » Computer Science Dictionary

Computer Science Dictionary

List of programming and computer science terms From LabAutopedia:

  • Open Outsourcing – Open outsourcing, a socio-economic movement resulting from the open source movement and the international outsourcing of programming, refers to a practice of making open source technologies more accessible to businesses and individuals by employing an inexpensive international labor force of programmers, often on a contractual piecework basis. Small businesses may not be technical enough to efficiently utilize open source resources in-house or large enough to hire a full time technician. Larger businesses with IT staff may lack technicians with specific skills or knowledge.
  • Open Source – Open source refers to practices in production and development of software by a public development community(typically volunteers from many organizations) rather than a single vendor. The source code of open source software is free and available to anyone who would like to use it or modify it for their own purposes. This allows an organization to add a feature itself rather than hope that the vendor of a proprietary product will implement its suggestion in a subsequent release. Some consider open source as a philosophy, and others consider it as a pragmatic methodology of software development.
  • Open Source Movement – The open source movement is an offshoot of the free software movement that advocates open-source software as an alternative label for free software, primarily on pragmatic rather than philosophical grounds.
  • Active Content – Active Content is the program code embedded in the contents of a web page. When the page is accessed by a web browser, the embedded code is automatically downloaded and executed on the user’s workstation. Active content is either interactive, such as Internet polls or opt-in features, or dynamic, such as animated GIFs, stock tickers, weather maps, JavaScript applications, embedded objects, streaming video and audio or ActiveX applications. Streaming video and audio rely on browser plug-ins, such as RealPlayer, to display active content.
  • Abandonware – Abandonware refers to software that is no longer being sold or supported by its publisher. Most abandonware is still considered illegal to sell unless the publisher has re-released the software as freeware.
  • Zipping – Zipping refers to the process of compressing a file so it takes up less space. The compress files after zipping is called a zip file. There are two types of Zip files, normal (requiring a program to extract them) and self-executing that open up automatically. PKZip and WinZip are popular zipping and unzipping programs.
  • ABC: Another Bittorrent Client – Another Bittorrent Client (ABC) is a BitTorrent client based on BitTornado. It supports a queueing system with priority, global and local (per torrent) preference setting for downloading torrent (including upload and download rating limit), 3 upload options to do with completed file, and a system named Upload Rate Manager (URM) to force torrents out of queue if there isn’t a pre-set amount of upload activity. There is also an extensive web interface in ABC, allowing for other applications to view and change torrents and preferences remotely.
  • ABEND: Abnormal End of Task – Abnormal end of task (ABEND) refers to software crashes or lossage. This term was derived from an error message on the IBM 360.
  • ABEND: Absent By Enforced Net Deprivation – Absent By Enforced Net Deprivation (ABEND) refers to the sent-in-email subject lines,warning friends and others of forced loss of Internet access (due to moving, network outages, or illness).
  • ABI: Application Binary Interface – Application Binary Interface(ABI) is a specification for the application programming interface (API) and machine language for a hardware platform.
  • ABNF: Augmented Backus Naur Form – The augmented Backus Naur form (ABNF), an extention to the Backus-Naur form (BNF), is a metasyntax used to express context-free grammars: that is, a formal way to describe formal languages which consist of its own syntax and derivation rules. The motive principle for this metalanguage is to describe a formal system of a language which is a protocol (bidirectional specification). It is documented in RFC 4234 and often serves as the definition language for IETF communication protocol.
  • Abstract Base Class – An abstract base class, a term used in the object oriented programming language, is meant to be used as the base class from which other classes are derived.
  • Abstract Type – In software engineering, an abstract type is a type in a nominative type system which is declared by the programmer, and which has the property that it contains no members which also are not members of some declared subtype. In many object-oriented programming languages, abstract types are known as abstract base classes, interfaces, traits, mixins, flavors, or roles. Note that these names refer to different language constructs which are (or may be) used to implement abstract types.
  • ACCU: Association of C and C++ Users – Association of C and C++ Users (ACCU) is a worldwide association of people who are interested in C, C++, and related programming languages.
  • ACD Canvas – ACD Canvas is a graphics, publishing, and imaging product for personal computers. Canvas provides tools for creating and editing vector graphics and pixel-based images. It is used for illustration, page layout, animation, presentations, and publications in printed and Web formats.
  • ACDI: Asynchronous Communications Device Interface – Asynchronous Communications Device Interface (ACDI) is a software device that permits asynchronous transmission, a way of transmitting data in which one character is sent at a time, and there may be uneven amounts of time between characters.A start bit and a stop bit notify the receiving computer when the transmission begins and ends.In synchronous transmission, strings of multiple characters are transmitted; this method is faster, but more expensive..
  • ACF NCP: Advanced Communication Function – Network Control Program – Advanced Communication Function – Network Control Program (ACF NCP) is the program that controls network communications in the Systems Network Architecture (SNA) by IBM.
  • Acrobat – Acrobat, a document exchange software from Adobe Systems, provides a platform-independent means of creating, viewing, and printing documents. Acrobat can convert a DOS, Windows, UNIX or Macintosh documents into a Portable Document Format (PDF) which can be displayed on any computer with an Acrobat reader. The Acrobat reader can be downloaded free from the Adobe website.
  • Action Request System – Action Request System is a Client-server software application toolset developed by Remedy Corp. It is most commonly used as a tracking system. The AR System uses a third party database (Sybase, MS SQL, Oracle, etc…) for storing data in tables. In addition, the database stores a set of metatables known as the data dictionary. These metatables contain the source code which tell the applications how to interact with the users and the data. The AR System has an open API, a feature which allows users to create custom client tools and scripts that talk directly to the AR Server
  • ActiveMovie – ActiveMovie, a multimedia streaming technology developed by Microsoft, enables users to view multimedia content distributed over the Internet, an intranet, or CD-ROM. It is built into the Internet Explorer browser and supported by Windows operating systems.
  • ActiveX Programs – ActiveX programs, often written using Visual Basic, are used for active contents that are called and used by other programs and the operating system. For example, ActiveX is used with Microsoft Internet Explorer to make interactive Web pages that can perform functions, rather than static pages. With ActiveX, users can ask or answer questions, use push buttons, and interact in other ways with the Web page. ActiveX applications can have full access to your system and you must be very careful when allow your system to execute this kind of code, because it may conduct malicious activities.
  • ACT-R – ACT-R is a symbolic cognitive architecture, which has been widely used to model different aspects of human cognitive behavior. ACT-R has been used to study many different aspects of human performance including perception and attention, learning and memory, problem solving and decision making, language processing, intelligent agents, intelligent tutor systems, and Human-computer interaction. ACT-R can be compared in many aspects to SOAR, DUAL, EPIC, Psi, Copycat, and subsumption architectures.
  • Ada – Ada, Pascal-based programming language, is a structured, statically typed programming language. It is positioned to address much the same tasks as C or C++, but with the type-safety of a language like Java. Ada was designed to enable computers to control automatic equipment, but is now also used for other applications. Ada was named after Ada, Lady Lovelace.
  • Add-in – Add-in, also known as Add-on, is a mini program that runs in combination with the main application in order to extend and improve the functionality of that application. In the Windows environment, add-ins are becoming increasingly commonly-used Object Linking and Embedding (OLE) technologies.
  • Add-on – Add-on, also known as Add-in, is a mini program that runs in combination with the main application in order to extend and improve the functionality of that application. For example, there are add-on report generation programs that are attached to popular database products such as dBASE, giving them additional report-generation and graphics capabilities.
  • Adobe Acrobat – Acrobat, a document exchange software from Adobe Systems, provides a platform-independent means of creating, viewing, and printing documents. Acrobat can convert a DOS, Windows, UNIX or Macintosh documents into a Portable Document Format (PDF) which can be displayed on any computer with an Acrobat reader. The Acrobat reader can be downloaded free from the Adobe website.
  • ADP: Automatic Data Processing – Automatic Data Processing (ADP) refers to computer aided storing, manipulating or processing of information in the data format, requiring minimal or no human interaction.
  • Adware – Adware, a form of spyware, collects information about the user or user activities in order to display advertisements in the Web browser. Adware or advertising-supported software includes advertisements or other marketing material automatically loaded by the software and displayed or played back after installation about the computer or its users activities. It is uploaded automatically when the user has not requested it. These applications often present banner ads in pop-up windows or through a bar that appears on a computer screen.
  • AFC: Advanced Communication Function – Advanced communication function (ACF), also known as Advanced Communications Function/Network Control Program (ACF/NCP), often referred as NCP, is the primary SNA network control program. ACF/NCP resides in the communications controller and interfaces with the SNA access method in the host processor to control network communications. ACF/NCP can also communicate with multiple hosts using local channel or remote links (PU type 5 or PU type 4) thus enabling cross domain application communication. In a multiple mainframe SNA environment, any terminal or application can access any other application on any host using cross domain logon.
  • AFK Gaming – AFK Gaming is a technique used typically by MMORPG gamers, but also can be theoretically used by any other game genre. AFK gamers use software, either in the form of a bot or a game’s built-in macro system, to continuously do a repetitive task for them, over and over. It also gives the player a significant competitive edge against other players.
  • After Dark – After Dark is a popular screen saver program from Berkeley Systems that allows users to create custom animations.
  • Agent Software – In the context of computer software, agent is a software program that performs a service, such as collecting device or user information, alerting the user of something that needs to be done; or monitoring incoming data and giving an alert when a message has arrived. An intelligent agent can make decisions and take actions about information it finds.
  • AI: Artificial Intelligence – Artificial Intelligence(AI) is a branch of computer science on how to endow computers with capabilities of human intelligence. AI can be seen as an attempt to model aspects of human thought on computers. It is also sometimes defined as trying to solve by computer any problem that a human can solve faster. Examples of AI include speech and pattern recognition.
  • AIGLX: Accelerated Indirect GLX – Accelerated Indirect GLX(AIGLX) is an open source project founded by the X.Org Foundation and the Fedora Core Linux community to allow accelerated indirect GLX rendering capabilities to X.org and DRI drivers. This allows remote X clients to get fully hardware accelerated rendering over the GLX protocol. AIGLX is also a required component to offering good performance when using an OpenGL compositing window manager, such as Compiz or Metacity.
  • AIX: Advanced Interactive eXecutive – Advanced Interactive eXecutive(AIX), originally called as Advanced IBM Unix, is a proprietary operating system developed by IBM based on UNIX System. AIX has pioneered numerous network operating system enhancements, introducing new innovations later adopted by Unix-like operating systems.
  • Algol Object Code – In computer science, ALGOL Object Code was a simple and compact and stack-based instruction set architecture mainly used in teaching compiler construction.
  • Algorithm – Algorithm is a procedure and sequence of actions to accomplish some task. The concept of an algorithm is often illustrated by the example of a recipe, although many algorithms are much more complex; algorithms often have steps that repeat (iterate) or require decisions (such as logic or comparison). In most higher level programs, algorithms act in complex patterns, each using smaller and smaller sub-methods which are built up to the program as a whole. In most languages, they are isomorphic to functions or methods. Most algorithms can be directly implemented by computer programs; any other algorithms can at least in theory be simulated by computer programs.
  • Allegro Library – The Allegro library is a free video game software library, with functions for 2-dimensional imaging, basic audio, input, timers, and fixed-point and floating-point matrix arithmetic. The programs that use the library work on DOS, Microsoft Windows, BeOS, Mac OS X, and various UNIX systems with (or without) X Window System, abstracting their application programming interfaces into one portable interface.
  • Aloha – Aloha, a software from Media Synergy, allows a user to add graphics, animation, and sound to e-mail messages.
  • Alpha Test – Alpha test is the first formal test of a newly developed hardware or software product by internal people. The key objectives of the alpha test are functionality confirmation and bug identification. When the first round of bugs has been fixed, the product goes into beta test with actual users and customers.
  • Alpha Version – Alpha version is an early version of a software or hardware product, which passed the Alpha test. Alpha version may not contain all of the features that are planned for the final release. Typically, software goes through two stages of testing before it is considered finished. The first stage, called alpha testing which is done by internal users. The second stage, called beta testing , generally involves a limited number of external users.
  • Alphanumeric – Alphanumeric refers to a group of printable characters that include the letters of the alphabet in both upper and lower case, the numerals plus a limited group of additional symbols and punctuation marks.
  • ALSA: Advanced Linux Sound Architecture – Advanced Linux Sound Architecture(ALSA) is a Linux kernel component intended to replace the original Open Sound System for providing drivers for sound cards. Some of the goals of the ALSA project were to support automatic configuration of sound card hardware, and graceful handling of multiple sound devices in a system, goals which it has largely met. A couple of different frameworks such as JACK use ALSA to provide the ability to perform low latency professional grade audio editing and mixing.
  • ALTQ: ALTernate Queueing – ALTernate Queueing (ALTQ), a queueing framework for BSD UNIX, provides queueing disciplines and other QoS related components required to realize resource-sharing and Quality of Service. It is most commonly implemented on BSD-based routers. ALTQ is included in the base distribution of FreeBSD and is integrated into the pf packet filter of OpenBSD.
  • Aluria Software – Aluria Software is a company that sells spyware removal products such as WhenU.
  • AmigaOS – AmigaOS is the default native operating system of the Amiga personal computer. On top of a basic kernel called Exec, it includes an abstraction of the Amiga’s unique hardware, a disk operating system called AmigaDOS, a windowing system called Intuition and a graphical user interface called Workbench.
  • AML: Astronomical Markup Language – Astronomical Markup Language (AML) is a standardized format for exchange of metadata related to astronomy. This language will enhance the ability of astronomers to retrieve scientific data, and make it possible for humans and intelligent agents to use the same information. Humans can view AML documents by means of a Java AML browser; intelligent agents can use an Extensible Markup Language (XML) parser.
  • Amoeba – Amoeba is a distributed operating system. Amoeba is a powerful microkernel-based system that turns a collection of workstations or single-board computers into a transparent distributed system. It has been in use in academia, industry, and government for about 5 years. It runs on the SPARC (Sun4c and Sun4m), the 386/486, 68030, and Sun 3/50 and Sun 3/60. Amoeba is only available under licence from the VUA, but is free of charge and includes all source, binaries and documentation.
  • Anatomic P2P – Anatomic P2P is a decentralised peer-to-peer network based on the BitTorrent protocol. All software that forms a part of Anatomic P2P is licenced under the GNU (General Public License). Anatomic P2P consists of various scripts and applications, including the tracker (or node) script, supertracker (or supernode) script, planter applicatons and the client. All the scripts are written in PHP but nevertheless would function in any other language. All the applications are written in Python.
  • ANDF: Architecture Neutral Distribution Format – Architecture Neutral Distribution Format(ANDF) is an intermediate language created by the Open Software Foundation (OSF, now the Open Group) for the use in developing UNIX software.
  • Angel Operating System – Angel Operating System is a single address space, micro-kernel operating system for multiprocessor computers, developed at Imperial College and City University, London, UK. Angel OS unifies naming and interprocess communication in both shared and distributed memory multiprocessors by using distributed shared memory techniques when shared memory is not already provided by the hardware.
  • ANSYS – ANSYS, a product by ANSYS inc. is a software package which used in finite element analysis. Its field of use is large including structural work, electromagnetics, fluid dynamics, thermal analysis, etc.
  • Anti-Adware – Anti-adware refers to any software utility or algorithm that scans your system and removes adware, spyware, keyloggers, trojans, and other malicious code from your computer. Anti-adware maybe a stand-alone software or part of an anti-virus software.
  • Antique Software – Antique software refers to applications, development tools, and systems software that, while no longer in widespread use, are still of interest. These programs are typically available for download on the Web, sometimes with the blessing of the publisher who still owns the rights.
  • AOS: Add One and do not Skip – Add One and do not Skip (AOS) is a PDP-10 (a Digital Equipment Corporation platform) instruction that took any memory location and added 1 to it. There were eight such instructions: AOSE added 1 and then skipped the next instruction if the result was Equal to zero; AOSG added 1 and then skipped if the result was Greater than 0; AOSN added 1 and then skipped if the result was Not 0; AOSA added 1 and then skipped Always; and so on.
  • Apache – Apache is the most popular web server on the Internet with more than 70% of the web sites on the Internet using Apache. The Apache HTTP Server is a project of the Apache Software Foundation and the software is free. Originally designed for Unix servers, Apache has been ported to Windows and other network operating systems (NOS). The name “Apache” was derived from the word “patchy” that the Apache developers used to describe early versions of their software. Apache provides a full range of Web server features, including CGI, SSL, and virtual domains. Apache also supports plug-in modules for extensibility.
  • Apache HTTP Server – Apache HTTP Server is an open source HTTP web server for Unix-like systems (BSD, Linux, and UNIX systems), Microsoft Windows, Novell Netware and other platforms.
  • Apache Incubator – Apache Incubator is the stepping stone for projects hoping to become fully fledged Apache Software Foundation projects. Code donations from external organisations and existing external projects wishing to move to Apache will enter through the Incubator.
  • Apache Project – The Apache Project is a collaborative software development effort aimed at creating a robust, commercial-grade, featureful, and freely-available source code implementation of an HTTP (Web) server. The project is jointly managed by a group of volunteers worldwide.
  • Apache Tomcat – Apache Tomcat, also called Tomcat, is a web container developed at the Apache Software Foundation. Tomcat implements the servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, providing an environment for Java code to run in cooperation with a web server. It adds tools for configuration and management but can also be configured by editing configuration files that are normally XML-formatted. Because Tomcat includes its own HTTP server internally, it is also considered a standalone web server.
  • API Documentation – Application Program Interface (API) documentation refers to documentate the Application programming interface (API) functions and operation details, so that other programmers can continue developing in the project, or develop other software that make use of the projects API, without having to study the code itself.
  • API: Application Programming Interface – Application Programming Interface (API) is a set of definitions of the ways one piece of computer software communicates with another. It is a method of achieving abstraction, usually (but not necessarily) between lower-level and higher-level software. An API defines data structures and subroutine calls. Networking APIs are entry points to libraries that implement network and data communication protocols. Traditionally, the primary networking APIs have been implemented in socket libraries, for example Berkeley sockets API, Windows Sockets (Winsock) APIs, and Java network APIs.
  • AppleScript – AppleScript is an object-oriented shell language and command-line interface for Macintosh, beginning with System 7 Pro.
  • AppleShare – AppleShare is the file server software developed by Apple Computer, Inc. for Mac OS users to share files among Macintosh computers on the same network.
  • Applet – Applet is a little application that can be a utility or other simple program. Applets are often written in Java language which are attached to HTML documents. An applet runs in the context of another progam, for example a web browser. The applet must run in a container, which is provided by a host program, or through a plugin, or a variety of other applications including mobile devices that support the applet programming model. Unlike a program, an applet cannot run independently. It provides display features often with interaction with human users, and is usually stateless and has restricted security privileges. An applet characteristically performs a very narrow function that has no independent use. Hence, it is an application -let (Applet).
  • Application – Application in computer software refers to a complete and self-contained program that helps the user accomplish a specific task. Application programs should be distinguished from system programs such as operating systems, which control the computer and run those application programs.
  • Application Framework – In computer programming, an application framework refers to a set of libraries or classes that are used to implement the standard structure of an application for a specific operating system. By bundling a large amount of reusable code into a framework, much time is saved for the developer.
  • Application Macro – Application macro is a type of macro which allows the user to specify a series of (oft-repeated) actions as one new procedure. These application macros are generally recorded by carrying out the sequence once and letting the application “remember” the actions. More advanced users can often make use of a built-in macro programming language which has direct access to the features of the application.
  • Application Package – Application package includes the software programs and related documentation and instruction manuals of this particular software.
  • Application Program – In computer software, Application program, also known as Application software or simply Application, refers to a complete and self-contained software that helps the user accomplish a specific task. Application programs should be distinguished from system programs such as operating systems, which control the computer and run those application programs.
  • Application Programmer – Application programmer is a person with computer programming expertise to develop application programs.
  • Application Server – An application server is a server computer in a computer network dedicated to running certain software applications. The term also refers to the software installed on such a computer to facilitate the serving (running) of other applications. For example, an web application server delivers content to the Web, interprets site traffic and constructs pages based on a dynamic content repository.
  • Application Software – In computer software, Application software, also known as Application program or simply Application, refers to a complete and self-contained software that helps the user accomplish a specific task. Application programs should be distinguished from system programs such as operating systems, which control the computer and run those application programs.
  • Application Stack – Application stack, also known as application suite or application set, is a group of applications closely related in functionality. For example, a typical office application stack would include programs such as word processing, spreadsheet, database, etc. as well as a Web browser and e-mail and instant messaging programs.
  • Application Suite – Application suite, also known as application stack or application set, is a group of applications closely related in functionality. For example, a typical office application stack would include programs such as word processing, spreadsheet, database, etc. as well as a Web browser and e-mail and instant messaging programs.
  • APSE: Ada Programming Support Environment – Ada Programming Support Environment(APSE) is a set of programs to support software development in the Ada programming language.
  • AR Mid-Tier: Action Request Mid-Tier – Action Request Mid-Tier (AR Mid-Tier) is a servlet application of Remedy’s Action Request System, which allows users to access the AR Server with a standard web browser.
  • AR System Administrator – Action Request System (AR System) is a client-server software application toolset developed by Remedy Corp. It is most commonly used as a tracking system. The AR System uses a third party database (Sybase, MS SQL, Oracle, etc…) for storing data in tables. In addition, the database stores a set of metatables known as the data dictionary. These metatables contain the source code which tell the applications how to interact with the users and the data. The AR System has an open API, a feature which allows users to create custom client tools and scripts that talk directly to the AR Server.
  • AR System Import – AR System Import is a fat client for Remedy’s Action Request System that is used to import data. Only administrators of the AR System are allowed to use the import tool. The import tool uses the merge action of the AR API to create entries from a .arx or .csv file. This client is only used for importing data – applications, forms, workflow and metadata are imported via AR System Administrator.
  • AR System: Action Request System – Action Request System (AR System) is the Remedy’s platform and development environment for automating Service Management business processes.  The foundation for Remedy IT Service Management for the Enterprise and Customer Service and Support applications, AR System is also the development environment for thousands of customer- and partner-built applications.
  • Architecture – Architecture, in computer software contex, is a framework or structure that provides the form of a software system and the conventions, policies, and mechanisms for composing itself with subsystems, or component parts, that can populate the architecture. The architecture defines how the parts relate to each other including constraints governing how they can relate. If a system is divided into parts and components, then there are interfaces that define how the parts intercommunicate or interface.
  • Ardour – Ardour, a Free Software released under the GNU General Public License, is a professional hard disk recorder and digital audio editor application. It currently runs on GNU / Linux, Solaris, and Mac OS X.
  • ASLR: Address Space Layout Randomization – Address Space Layout Randomization (ASLR) is a process which entails arranging the positions of major data areas randomly in virtual address space. This can include the base of the executable, libraries, heap, and stack. The chances of an attacker guessing where any of these randomly placed areas is 1 / 2b, where b is the number of bits of entropy used to determine the position of the data area. In many systems, 2b can be in the thousands or millions; on modern 64-bit systems, these numbers typically reach the millions at least.
  • ASP: Active Server Pages – Active Server Pages (ASP), a Microsoft technology, allows programmers to develop custom code that works with Microsoft’s Internet Information Server (IIS). Programmers may use one of two scripting languages to create ASP pages: VBScript (Visual Basic Script) or JavaScript. ASP pages often utilize ActiveX Data Objects to link to SQL Server databases and other data sources.
  • ASPack – ASPack is a computer compression utility for Microsoft Windows operating systems. ASPack reduces the file size of programs by as much as 70%.
  • Assembly – Assembly refers to all of the files that comprise an application, including the resource, security management, versioning, sharing and deployment information. An assembly may appear as a single DLL or EXE file, or as multiple files.
  • Assembly Language – Assembly language is a type of computer CPU programming language, which consists entirely of numbers and are almost impossible for humans to read and write. Each type of CPU has its own machine language and assembly language, so an assembly language program written for one type of CPU won’t run on another. In the early days of programming, all programs were written in assembly language. Now, most programs are written in a high-level language such as C and C++. Programmers still use assembly language when speed is essential or when they need to perform an operation that isn’t possible in a high-level language.
  • Audacity – Audacity is a free digital audio editor that runs on the Linux/UNIX, Mac OS, and Microsoft Windows operating systems. The source code for Audacity is released under the GNU General Public License. The graphical user interface for the editor has been produced using the wxWidgets library.
  • Authoring Tool – Authoring tool, also known as authorware, is a program to help write hypertext or multimedia applications. Authoring tools allow you to link together objects, such as a paragraph of text, an illustration, or a song. By defining the objects’ relationships to each other, and by sequencing them in an appropriate order, users can produce attractive and useful graphics applications. Most authoring systems also support a scripting language for more sophisticated applications.
  • AutoCAD – AutoCAD, a product of AutoDesk, is a popular computer-aided drafting (CAD) software package for 2D and 3D design and drafting. Initially a general-purpose 2D drafting program, AutoCAD has been extended into a family of products, used by land developers, architects, mechanical engineers, and other design professionals. The AutoCAD family of products, taken as a whole, is by far the most widely used CAD software in the world.
  • AutoDesk – AutoDesk is a leading software company. Autodesk’s flagship product is the AutoCAD® product, which introduced drafting on a PC. The widespread popularity of AutoCAD software forged our company’s lifetime commitment to practical innovation that drives productivity and profitability. AutoCAD has also paved the way for Autodesk technology leadership in industries such as building, infrastructure, manufacturing, media and entertainment, and wireless data.
  • Autodesk Animator – Autodesk Animator is a 2D animation and painting program. The program is no longer supported or being developed.
  • Autodesk Inventor – Autodesk Inventor is 3D-CAD modeling software package. It is similar in functionality to SolidWorks and SolidEdge. It is marketed as a relatively low-cost alternative to more expensive programs such as: Pro/ENGINEER, CATIA, and I-DEAS.
  • AUTOEXEC.BATAUTOEXEC.BAT is the name of a system file found on the MS-DOS operating system. It is a plain-text batch file that is located in the root directory of the boot device. AUTOEXEC.BAT is only used on MS-DOS or Microsoft Windows versions based on MS-DOS, such as Windows 3.x, Windows 95, Windows 98, and Windows Me. The file is executed once the operating system has been booted and after the CONFIG.SYS file has been processed. On Windows, this occurs before the graphical environment has been started.
  • AutoLISP – AutoLISP is a dialect of Lisp programming language built specifically for use with the full version of AutoCAD and its derivatives like Autodesk Map 3D and Autodesk Architectural Desktop. Neither the application programming interface nor the interpreter to execute AutoLISP code are included in the AutoCAD LT product line.
  • Automated information system – Automated information system is an assembly of computer hardware, software, firmware, or any combination of these, configured to accomplish specific information-handling operations, such as communication, computation, dissemination, processing, and storage of information.
  • Automatic Parallelization – Automatic parallelization, also known as auto parallelization or Autoparallelization, is a computer compiler optimization technique, which refers to the use of a optimizing parallelizing compiler to convert sequential code into multi-threaded or vectorized (or even both) code in order to utilize multiple processors simultaneously in a shared-memory multiprocessor (SMP) machine. The goal of automatic parallelization is to relieve programers from the tedious and error-prone manual parallelization process.
  • Automatic Vectorization – Automatic vectorization, in the context of a computer program, refers to the transformation of a series of operations performed linearly, one step at a time, to operations performed in parallel, several at once, in a manner suitable for processing by a vector processor.
  • Autoresponder – Autoresponder, also known as mailbot, is a program that automatically delivers information by e-mail.
  • Autosketch – AutoSketch is a 2D vector drawing program by Autodesk. AutoSketch software provides a comprehensive set of CAD tools for creating precision drawings from electrical details to floor plans, from conceptual sketches to product specifications, and much more.
  • Autotote – Autotote is an automated, computerized off-track and/or on-track betting system for betting on horse races. It is an integrated system for off-track betting, keeping track of race results and winning tickets, and race simulcasting.
  • Avidemux – Avidemux is an open-source free program designed for multi-purpose video editing and processing. It is written in C/C++, using the GTK+ graphics toolkit, and therefore is truly a platform independent, universal video processing program. It is available for almost all distributions of Linux that are capable of compiling C/C++ code, along with the GTK+ graphics toolkit and the SpiderMonkey ECMAScript scripting engine.
  • Avionics Software – Avionics software is embedded software with legally-mandated safety and reliability concerns, that is used in avionics. The main difference between avionic software and conventional embedded software is that the development process is required by law and is optimized for safety.

B

  • B2evolution – B2evolution is a multi-lingual, multi-user, multi-blog publishing system written in PHP and backed by a MySQL database. It is distributed under the GNU General Public License and is available without charge.
  • Backup – Backup is the process of copying data, software or other digital information on a separate media in addition to its original storage.
  • Backup & Recovery – Backup & recovery are the combination of procedures that can restore lost data in the event of hardware or software failure. Routine backup of databases and logs of computer activity are part of a backup & recovery program.
  • Backward Compatible – Backward compatible refers to th new versions of software or hardware that is compatible with earlier models or versions of the same product. A new version of a program is said to be backward compatible if it can use files and data created with an older version of the same program. A computer is said to be backward compatible if it can run the same software as the previous model of the computer.
  • Baitware – Baitware, similar to freeware, refers to the software with very limited or defective functions which is made available gratis/free of charge. Baitware is released to deceptively attract users and drive them to commercial products.
  • BASH: Bourne-Again Shell – Bourne-Again SHell (BASH) is an interactive UNIX shell based on the traditional Bourne shell, but with increased functionality. BASH is the shell, or command language interpreter, that will appear in the GNU operating system. BASH is a sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh). It is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers functional improvements over sh for both programming and interactive use. In addition, most sh-scripts can be run by BASH without modification.
  • BASIC – BASIC is a simple computer language designed by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963. It first ran on an IBM 704 on 1964-05-01. It was designed for quick and easy programming by students and beginners. BASIC exists in many dialects, and is popular on microcomputers with sound and graphics support.
  • bBlog – bBlog is a Web publishing and content management system system written in PHP and utilizing a MySQL database. bBlog is used to manage frequently updated Web content, especially Weblogs. It is distributed under the GNU General Public License and is available without charge. bBlog’s design goals are based around using the Smarty PHP templating engine, with compatible plugin and template formats. This makes it very easy to modify the look and functions of your blog.
  • BCNF: Boyce-Codd Normal Form – Boyce-Codd normal form (BCNF) is a structure and algorithm for the normalization of relational databases. BCNF requires that there be no non-trivial functional dependencies of attributes on something other than a superset of a candidate key (called a superkey). At this stage, all attributes are dependent on a key, a whole key and nothing but a key (excluding trivial dependencies, like A->A). A table is said to be in the BCNF if and only if it is in the 3NF and every non-trivial, left-irreducible functional dependency has a candidate key as its determinant. In more informal terms, a table is in BCNF if it is in 3NF and the only determinants are the candidate keys.
  • BCX: Basic To C Translator – Basic To C Translator(BCX), an open source and free software, translates BASIC to C/C++ for compilation on various Win32 compilers. It is a small command line tool that takes a BASIC source code file and outputs a C/C++ source code file. The result can then be compiled using any of several popular C/C++ compilers, including non-commercial ones. Code can be compiled into 32-bit native Windows console mode programs, Windows GUI programs, and Dynamic Link Libraries.
  • BDS C: BD Software C Compiler – BD Software C Compiler (BDS C) is a compiler for a sizeable subset of the C programming language, that ran on and generated code for the Intel 8080 and Zilog Z80 processors. It was written by Leor Zolman and first released in 1979. “BDS” stood for “Brain Damage Software”. BDS C was very popular and influential among CP/M users and developers in the 8-bit microcomputer era.
  • Bedroom Programming – Bedroom programming is a computer programming practice which involves Software or Video Game development by one or a team of amateur programmers who program because they love it, and not for making money out of their software.
  • Bells and Whistles – Bells and whistles in software means those fancy features provided by an application. Typically, the term refers to features that are needed only in special cases or to features that make the program more visibly attractive. The term can be used either favorably or negatively.
  • Berkely Software Design – Berkely Software Design Inc. was a corporation which developed, sold licences to, and supported BSDi, a commercial and partially proprietary variant of the BSD operating system. It was founded by former members of the Computer Sciences Research Group at Berkeley, and the name was chosen for its similarity to “Berkeley Software Distribution” the source of its primary product. It contributed code and resources back to the open source BSD community.
  • Bespoke Software – Bespoke software refers to the custom-made software products, including made-to-order software. Bespoke is a term used in the United Kingdom and elsewhere for an individually- or custom-made product or service. Typically, software companies offer packaged software with standard functions for all customers. Bespoke software addresses specific client needs that can’t be satisfied by packaged software. In the U.S., bespoke software is often called custom or custom-designed software.
  • Beta Test – Beta test is the computer system test prior to commercial release. Beta testing is the last stage of testing, and normally can involve sending the product to beta test sites outside the company for real-world exposure or offering the product for a free trial download over the Internet. Beta testing is often preceded by a round of testing called alpha testing.
  • Beta Version – A beta version, also known as beta release, usually represents the first version of a computer hardware or software that implements all features in the initial requirements specification. It is likely to be unstable but useful for internal demonstrations and previews to select customers, but not yet ready for release. Some developers refer to this stage as a preview, as a technical preview (TP) or as an early access.
  • BetBug – BetBug is a downloadable software application that links users together so that they can share betting offers. BetBug effectively functions as a betting exchange. BetBug’s distributed network technology comes from P2P File sharing.
  • BI software: Business Intelligence Software – Business Intelligence software (BI Software) is a kind of sotware that enables users to obtain enterprise-wide information more easily. BI software tightly integrates querying, reporting, OLAP, data mining and data warehousing functions to enable users to obtain “all” the information they desire from their organization’s numerous databases. BI software should allow you to derive the transactions and summaries you need without having to know the sources (which databases, which servers, etc.).
  • Binary Compatible – Binary compatible refers to that data files produced by one application/system that are exactly the same as data files produced by another application at the binary format level. Binary compatible avoids many of the conversion problems caused by importing and exporting data from one system to another. For example, many applications for Windows and the Macintosh that are binary compatible, which means that a file produced in a Windows environment is interchangeable with a file produced on a Macintosh.
  • Binary Tree – A binary tree is a tree data structure in which each node has at most two children. Typically the child nodes are called a “left” pointer, a “right” pointer. The “root” pointer points to the topmost node in the tree. The left and right pointers recursively point to smaller “subtrees” on either side. One common use of binary trees is binary search trees; another is binary heaps.
  • Binding Time – Binding Time is the time at which decisions are made. In software programing, there are different types of binding times. Static or early binding happens at compile time and certain type information is used and sometimes then thrown away; dynamic binding or late or virtual binding happens at run time. An example of a static binding is a direct C function call: the function referenced by the identifier cannot change at runtime. An example of dynamic binding is dynamic dispatch, as in a C++ virtual method call.
  • Bit Rot – Bit rot is a colloquial computing term used either to describe gradual decay of storage media or to facetiously describe the spontaneous degradation of a software program over time. The later use of the term implies that software can literally wear out or rust like a physical tool. More commonly, bit rot refers to the decay of physical storage mediums.
  • BitComet – BitComet is a freeware client for BitTorrent. It supports simultaneous downloads, download queue, selected downloads in torrent package, fast-resume, chatting, disk cache, speed limits, port mapping, proxy, ip-filter, etc. BitComet also provides an embedded Internet Explorer window for the purpose of making torrent searching easier. A default list of torrent index sites is included, which users can modify to remove unwanted sites and add missing ones.
  • BitLord – BitLord is a BitTorrent client. It supports simultaneous downloads, download queue, selected downloads in torrent package, fast-resume, chatting, disk cache, speed limits, port mapping, proxy, ip-filter, etc. BitLord is an outdated repackaged BitComet client, which adds two new buttons to the toolbar for linking to pornography and gambling sites.
  • BitTorrent Client – A BitTorrent client is a computer program that is used to download and upload files via the BitTorrent protocol. The first BitTorrent client was BitTorrent itself, developed by Bram Cohen. There are many BitTorrent clients were created later. Some are based on the original BitTorrent while some are completely rewritten. BitComet and BitLord are two examples of the BitTorrent clients.
  • Bloatware – Bloatware, also called software bloat or fatware, is a type of software that requires lots of computer resources such as disk space and RAM. It is also used in a more general context to describe programs which appear to be using more system resources than necessary, or implementing extraneous features.
  • Blog Client – Blog client, also known as weblog client, is a software that can manage (post, edit) blogs from operating system with no need to launch a web browser. A typical blog client has an editor, a spell-checker and a few more options that simplify content creation and editing.
  • Blogware – Blogware, also called weblog software or blog software, is a category of software which consists of a specialized form of Content Management Systems specifically designed for creating and maintaining weblogs. Most blogware applications have features such as facilitating authoring and editing of blog posts or articles, various linking and web syndication features, and the ability to easily publish the blog to the world wide web.
  • Blue Martini Software – Blue Martini Software (Blue Martini Software, Inc.) is a privately held software manufacturer and professional services provider based in San Mateo, California that sells and supports an eponymous e-commerce enterprise application that supports sales online, by phone, and at the point-of-purchase.
  • BMRT: Blue Moon Rendering Tools – Blue Moon Rendering Tools (BMRT) is RenderMan-compliant photorealistic rendering systems. It was distributed as freeware. BMRT was a popular renderer with students and other people who were trying to learn the RenderMan interface. It also had some features PhotoRealistic RenderMan did not have at time, for example, raytracing.
  • BNF: Backus Naur Form – The Backus Naur form (BNF), also known as the Backus Naur formalism, Backus normal form, or Panini Backus Form, is a metasyntax used to express context-free grammars: that is, a formal way to describe formal languages. BNF is widely used as a notation for the grammars of computer programming languages, command sets and communication protocols, as well as a notation for representing parts of natural language grammars. Most textbooks for programming language theory and/or semantics document the programming language in BNF. Some variants, such as augmented Backus-Naur form (ABNF), have their own documentation.
  • BoastMachine – BoastMachine is a web publishing application and content management system written in PHP using a MySQL database backend. BoastMachine is used to create, publish and manage weblogs. It is a free software licensed under the GPL.
  • Boehm Garbage Collector – In computer science, Boehm-Demers-Weiser garbage collector, often simply known as Boehm GC, is a conservative garbage collector for C and C++, which is used by many projects that are implemented in C or C++, as well as by runtime environments for a number of other languages, including the Gnu Compiler for Java runtime environment, and the Mono implementation of the Microsoft .NET platform.
  • Bookmark – Bookmark, in computing world, is a facility for marking a specific place in electronic documentation to enable easy return to it. It is used in several types of software, including PDF files, electronic help files and tutorials within a program or online. Bookmarks are frequently used on the Web, to remember a uniform resource locator (URL) in order to return to it. Most Web browsers therefore have built-in bookmark facilities, whereby the browser stores the URL with the page name attached. To return directly to the site, the user picks the page name from the list of saved bookmarks
  • Boolean – Boolean, named after George Boole (an English mathematician in the mid-19th century) is a complete mathematical logic system. Boolean logic and algebra has many applications in electronics, computer hardware and software.
  • Boolean Algebra – Boolean algebra is an algebraic structure (a collection of elements and operations on them obeying defining axioms) that captures essential properties of both set operations and logic operations. Specifically, it deals with the set operations of intersection, union, complement; and the logic operations of AND, OR, NOT. A Boolean algebra is also called a Boolean lattice.
  • Boolean AND – Boolean AND is one of the operations in the Boolean algebra that is performed on a pair of one-digit binary numbers. The result is another one-digit binary number. For example, 1 AND 1 yields 1; all other combinations yield 0.
  • Boolean logic – Boolean logic is a complete system for logical operations. It was named after George Boole, an English mathematician in the mid-19th century. Boolean logic has many applications in electronics, computer hardware and software. For example, in circuit design in electrical engineering, 0 and 1 may represent the two different states of one bit in a digital circuit, typically high and low voltage. Circuits are described by expressions containing variables, and two such expressions are equal for all values of the variables if, and only if, the corresponding circuits have the same input-output behavior. Furthermore, every possible input-output behavior can be modeled by a suitable Boolean expression. Basic logic gates such as AND, OR, and NOT gates may be used alone, or in conjunction with NAND, NOR, and XOR gates, to control digital electronics and circuitry.
  • Boolean OR – Boolean OR is one of the operations in the Boolean algebra that is performed on a pair of one-digit binary numbers. The result is another one-digit binary number. For example, 0 OR 0 yields 0; All other combinations yield 1.
  • Boolean value – Boolean value, also known as boolean datatype, is a primitive datatype having two values: one and zero (sometimes called true and false). It is the special case of a binary numeric datatype of only one digit, or bit, and can also be represented in any other radix by restricting the range of allowed values for certain operations. This datatype is used in boolean and other operations such as: and (AND, &, *), or (OR, |, +), exclusive or/not equivalent (xor, NEQV, ^), equal (EQV, =, ==) and not (NOT, ~, !) which correspond to some of the operations of Boolean algebra and arithmetic.
  • Boost Library – Boost library is a collection of libraries that extend the functionality of C++. The libraries are licensed under the Boost Software License, a very open license designed to allow Boost to be used with any project. Several Boost libraries have been accepted for incorporation into the next library technical report of the C++ standard committee.
  • Bootstrapping – Bootstrapping is a term used in Computer Programming to describe the techniques involved in writing a compiler (or assembler) in the target programming language which it is intended to compile.
  • Bot: RoBOTic Computer Ccontrolled Entity – A bot is a roBOTic computer controlled entity that simulates an online or LAN multiplayer human deathmatch opponent, team deathmatch opponent or a cooperative human player. Computer game bots work via artificial intelligence routines pre-programmed to suit the game map, game rules, game type and other parameters unique to each game. Bots are not only found in FPS PC games but also featured in several console games.
  • Bottom-up Design – Bottom-up design, in contrast to the top down design, is one of the software design strategies in which individual parts of the system are specified in detail. The parts are then linked together to form larger components, which are in turn linked until a complete system is formed. Strategies based on this bottom-up information flow seem potentially necessary and sufficient because they are based on the knowledge of all variables that may affect the elements of the system.
  • Bounds-Checking Elimination – Bounds-checking elimination is a compiler optimization useful in programming languages or runtimes that enforce bounds checking, the practice of consistently checking every index into an array to verify that the index is within the defined valid range of indexes. Its goal is to detect which of these indexing operations do not need to be validated at runtime, and eliminating those checks.
  • BRL-CAD – BRL-CAD is a Constructive Solid Geometry (CSG) solid modeling Computer-aided design (CAD) system. BRL-CAD includes an interactive geometry editor, ray tracing support for graphics rendering and geometric analysis, computer network distributed framebuffer support, image-processing and signal-processing tools. The entire package is distributed in source code and binary form. BRL-CAD became an open source project on December 21, 2004. BRL-CAD now continues to be developed and maintained by a core community of open source developers ever since.
  • Brute Force Programing – Brute force programing refers a primitive programming style in which the programmer relies on the computer’s processing power instead of intelligence to simplify the problem. The brute-force programs are written in a heavy-handed, tedious way, full of repetition and devoid of any elegance or useful abstraction.
  • BSA: Business Software Alliance – Business Software Alliance (BSA), created by Microsoft in 1988, is an organization to combat software theft. The alliance includes the majority of leading software publishers such as Novell, Symantec, and Autodesk and is actively campaigning in over 65 countries. The BSA’s key missions include: 1. Lobbying to strengthen copyright laws and co-operation with law enforcement agencies. 2. Educating the public through marketing, roadshows, etc. 3. Bringing legal actions against counterfeiters. BSA’s aims are the same as the Federation Against Software Theft but it is not limited to the UK.
  • BSD Daemon – BSD Daemon is the BSD operating system’s mascot, named after a daemon, a type of software program common on Unix-like operating systems. The copyright of the BSD Daemon is held by Marshall Kirk McKusick who tries to ensure that it is properly used to identify only BSD-based software and services.
  • BSD license: Berkeley Software Distribution License – Berkeley Software Distribution (BSD) license is a type of license agreement for free software (a subset of open source software). The BSD license is a permissive license and is one of the most widely used free software licenses. It is used most commonly for the Berkeley Software Distribution(BSD), a Unix-like operating system for which the license was named.
  • BSD/OS – BSD/OS, also known as BSDi and BSD/386, was a commercial version of the Berkeley Software Distribution operating system that had been developed by the University of California, Berkeley’s Computer Science Research Group in the 1970s and 1980s.
  • BSD: Berkeley Software Distribution – Berkeley Software Distribution (BSD), also known as Berkeley System Distribution, is the UNIX derivative distributed by the University of California, Berkeley starting in the 1970s. The name is also used collectively for the modern descendants of these UNIX distributions. The BSD versions (4.1, 4.2, and 4.3) and the commercial versions derived from them (SunOS, ULTRIX, Mt. Xinu, Dynix) held the technical lead in the Unix world.
  • BSP: Board Support Package – Board support package(BSP) is part of a software package that is processor or platform dependent. Typically, sample source code for the BSP for various processors is provided by the software package developer. To port the complete software package, the code in the sample BSP should be modified. Most commercial real-time operating systems have a BSP to make porting easy.
  • BSS: Block Started by Symbol – Block Started by Symbol (BSS) was a pseudo-instruction in UA-SAP (United Aircraft Symbolic Assembly Program), and the assembler was developed in the mid-1950s for the IBM 704. The BSS keyword was later incorporated into FAP (FORTRAN Assembly Program), IBM’s standard assembler for its 709 and 7090/94 computers. It defined a label and reserved uninitialized space for a given number of words. In computer programming, .bss or bss is used by many compilers and linkers as the name of the data segment containing uninitialized variables. It is often referred to as the “bss section” or “bss segment”.
  • BST: Binary Search Tree – A binary search tree (BST), also called ordered binary tree, is a type of binary tree where the nodes are arranged in order: for each node, all elements in its left subtree are less-or-equal to the node (<=), and all the elements in its right subtree are greater than the node (>). BST has the following properties:
    • Each node has a value.
    • A total order is defined on these values.
    • The left subtree of a node contains only values less than the node’s value.
    • The right subtree of a node contains only values greater than or equal to the node’s value.
    • The major advantage of binary search trees is that the related sorting algorithms and search algorithms such as in-order traversal can be very efficient.
  • Budget Range – Budget range is the name given to software (usually video games) that is sold for a fraction (usually less than half) of a regular product price. While most of the software released under budget range are re-releases of successful products (such as Sony’s Platinum range), other labels (usually smaller, localized or “value” labels of larger companies) release their new games at budget prices to gather a broader audience.
  • Bug – In computer programming, a bug, also called software bug, is an error, flaw, mistake, failure, or fault in a computer program that prevents it from working as intended, or produces an incorrect result. Bugs arise from mistakes and errors, made by people, in either a program’s source code or its design. A program that contains a large number of bugs, and/or bugs that seriously interfere with its functionality, is said to be buggy. Reports about bugs in a program are referred to as bug reports, also called PRs (problem reports), trouble reports, CRs (change requests), and so forth.
  • Bundled Software – Bundled software refers to the software that comes free with the purchase of new hardware or with another purchased software. Bundled software usually is a variety of basic or demo programs, sometimes an encyclopedia, sample computer games, or other multimedia software.
  • Business Software – Business software is generally any software program that helps a business increase productivity or measure their productivity. The term covers a large variation of uses within the business environment, and can be categorized by using a small, medium and large matrix. For example, accounting software is business software.
  • Byte-Code – Byte-code is a binary file containing an executable program, formed by a sequence of op code/data pairs. Byte-code is a sort of intermediate code that is more abstract than machine code. It is often treated as a binary file containing an executable program, much like an object module. Byte-code is called so because usually each opcode is one byte in length but the length of instruction code varies. Each instruction has one byte operation code from 0 to 255 (or as hexadecimal: 00 to FF) followed by parameters such as registers or memory address. This is a typical case, but the specification of bytecode largely varies in language.
  • Bzip2 – Bzip2 is an open source data compression algorithm and program developed by Julian Seward in 1996. The compressor’s stability and popularity grew over the next several years, and Seward released version 1.0 in late 2000.

C

  • C Programming Language – The C programming language (often, just “C”) is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. The first major program written in C was the UNIX operating system. It has since spread to many other operating systems. Although originally designed as a systems programming language, C has proved to be a powerful and flexible language that can be used for a variety of applications, from business programs to engineering. C is a particularly popular language for personal computer programmers because it is relatively small — it requires less memory than other languages.
  • C# – C# is an object-oriented programming language developed by Microsoft as part of their .NET initiative, and later approved as a standard by ECMA and ISO. C# has a procedural, object oriented syntax based on C++ that includes aspects of several other programming languages (most notably Delphi, Visual Basic, and Java) with a particular emphasis on simplification (fewer symbolic requirements than C++, fewer decorative requirements than Java).
  • C++ – C++, originally named “C with Classes, is a high-level programming language developed by Bjarne Stroustrup at Bell Labs. C++ adds object-oriented features to its predecessor, C. C++ is a statically-typed free-form multi-paradigm language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. C++ is one of the most popular programming languages. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, and the current version of which is the 2003 version, ISO/IEC 14882:2003. A new version of the standard (known informally as C++0x) is being developed.
  • CAAD: Computer Aided Architectural Design – Computer Aided Architectural Design (CAAD) software programs are the repository of accurate and comprehensive records of buildings and are used by architects and architectural companies. In a more general sense, CAAD also refers to the use of any computational technique in the field of architectural design other than by means of architecture-specific software. For example, software which is specifically developed for the computer animation industry (e.g. Maya and 3DStudio Max), is also used in architectural design.
  • CAD: Computer Aided Design – Computer-aided design (CAD), also known as Computer Assisted Design, is the use of a wide range of computer-based tools that assist engineers, architects and other design professionals in their design activities. It is the main geometry authoring tool within the Product Lifecycle Management process and involves both software and sometimes special-purpose hardware. Current packages range from 2D vector based drafting systems to 3D parametric surface and solid design modellers.
  • CADD: Computer-Aided Design and Drafting – Computer-Aided Design and Drafting (CADD), one type of computer aided design (CAD), is a form of automation that helps designers prepare drawings, specifications, parts lists, and other design-related elements using special graphics- and calculations-intensive computer programs. The technology is used for a wide variety of products in such fields as architecture, electronics, and aerospace, naval, and automotive engineering.
  • CAE: Computer-Aided Engineering – Computer-aided engineering (CAE) analysis is the application of computer software in engineering to analyze the robustness and performance of components and assemblies. It encompasses simulation, validation and optimization of products and manufacturing tools. CAE systems can provide support to businesses, which is achieved by the use of reference architectures and their ability to place information views on the business process.
  • CAID: Computer-Aided Industrial Design – Computer-aided industrial design (CAID) is a subset of computer-aided design (CAD) that includes software that directly helps in product development. Within CAID programs designers have the freedom of creativity, but typically follow a simple design methodology: – Creating sketches, using a stylus Generating surfaces directly from the curves
  • Callback – In computer programming, a callback is executable code that is passed as an argument to other code. It allows a lower-level software layer to call a function defined in a higher-level layer. Usually, the higher-level code starts by calling a function within the lower-level code passing to it a pointer or handle to another function. While the lower-level function executes, it may call the passed-in function any number of times to perform some subtask. In another scenario, the lower-level function registers the passed-in function as a handler that is to be called asynchronously by the lower-level at a later time in reaction to something. A callback can be used as a simpler alternative to polymorphism and generic programming, in that the exact behavior of a function can be dynamically determined by passing different (yet compatible) function pointers or handles to the lower-level function. This can be a very powerful technique for code reuse.
  • Call-by-Reference – Call-by-reference is an evaluation strategy in computer programming, in which a function is passed an implicit reference such as argument’s address to its argument rather than the argument value itself. The called function then can directly access the argument through such reference.
  • Call-by-Value – Call-by-value is the most common evaluation strategy in computer programming, used in languages as far-ranging as C and Scheme. When invoking functions in programming languages, if calling function pass the argument to called function by the copy of the argument’s value, it’s called Call-By-Value. Changes to the copy will never affect the original variable’s value in the calling function.
  • CAM: Computer-Aided Manufacturing – Computer-aided manufacturing (CAM) refers to using software to generate the instruction codes for a Computer Numerical Control (CNC) machine in order for it to cut out a shape designed in a computer-aided design (CAD) system. Sometimes the CAM software is integrated with the CAD system, but not always. In electronic design automation, CAM tools prepare printed circuit board (PCB) and integrated circuit design data for manufacturing.
  • CAMA: Computer Assisted Mass Appraisal – Computer Assisted Mass Appraisal (CAMA) is a generic term for any software package used by government agencies to help establish real estate appraisals for property tax calculations.
  • CAR: Computer-Assisted Reviewing – Computer-assisted reviewing (CAR) tools are pieces of software based on text comparison and analysis algorithms. They focus on differences between two documents, taking into account each document’s typology through an intelligent analysis: differences do not have the same value depending on their type and/or the document field/subject.
  • Careware – Careware, also known as charityware, is software distributed in a way that benefits a charity. Some careware is distributed free, and the author suggests that some payment be made to a nominated charity. Other careware includes a levy for charity on top of the distribution charge.
  • CASE: Computer Aided Software Engineering – Computer-aided software engineering (CASE) is the use of software tools to assist in the development and maintenance of software. Tools used to assist in this way are known as CASE Tools. CASE tools can help with one or more phases of the software life-cycle, including the project management, business and functional analysis, design, code generation, implementation, testing and maintenance of software.
  • Casting Variable – Casting Variable in computer programming simply means reassigning the type of a variable. When casting a variable from one type to another, all you are doing is telling the computer to use a different type to store the variable. For example, you declared a variable of type short. In most cases, that would mean that the largest positive value you could store would be 32,767. But somewhere in your program, you realize that you’re going to have to do a calculation which could increase the value over this maximum. In this case, you need to perform casting variable.
  • CATIA – CATIA is the CAD/CAM/CAE commercial software suite developed by Dassault Systemes and marketed world-wide by IBM. It is commonly referred to as a 3D PLM software. All stages of product development are supported, from conceptualization, through design (CAD) and manufacturing (CAM) until analysis (CAE). It provides an open development architecure through interfaces which can be used to customize or develop applications. The API’s are supported in Fortran and C for V4 and Visual Basic and C++ for V5. These API’s are called CAA2 (or CAA V5). The CAA2 are COM based interfaces. These interfaces provide a seamless integration for products developed on the CATIA suite of software.
  • Cc65 – cc65, an open source package under GNU General Public License, is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools.
  • CCEA: Citrix Certified Enterprise Administrator – Citrix Certified Enterprise Administrator (CCEA) is a certification program of Citrix products that enables you to master Citrix products such as Citrix Management Services, Load Balancing Services, Program Neighborhood and Citrix NFuse.
  • CD Grabber – CD Grabber, also known as CD ripper or CD extractor, is a piece of software designed to extract raw digital audio from a compact disc to a file or other output. CD grabber supports converting CD to WAV, the converter makes direct digital copies from audio CDs and saves them as WAV easily.
  • CD Ripper – A CD ripper, also known as CD grabber or CD extractor, is a piece of software designed to extract raw digital audio (in format commonly called CDDA) from a compact disc to a file or other output.
  • CD/DVD Authoring – In computing, CD authoring or DVD authoring is the process of recording source material€”video, audio or other data€”onto a compact disc or DVD in a particular format.Authoring is commonly done in software on personal computers and workstations equipped with CD or DVD recorders. There are, however, stand-alone devices like personal video recorders which can also author and record discs.
  • CDDL: Common Development and Distribution License – Common Development and Distribution License (CDDL) is an open source and Free software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL), version 1.1. The CDDL was submitted for approval to the Open Source Initiative on December 1, 2004 and approved as an open source license in mid-January 2005. The CDDL is one of the 9 preferred licenses listed by the Open Source Initiative (OSI).
  • CeCILL: CEA CNRS INRIA Logiciel Libre – CEA CNRS INRIA Logiciel Libre (CeCILL) is a Free Software license adapted to both International and French legal matters, in the spirit of and retaining compatibility with the GNU General Public License.
  • Cedega – Cedega, formerly known as WineX, is TransGaming Technologies’ proprietary fork of Wine, which is designed specifically for running games written for Microsoft Windows under Linux. As such, its primary focus is implementing the DirectX API.
  • Celestia – Celestia is an open source, 3D astronomy program for Windows, Mac OS X, and Linux created by Chris Laurel. The program, based on the Hipparcos Catalogue, allows user to display objects ranging in scale from artificial satellites to entire galaxies in three dimensions using OpenGL. Unlike most planetarium software, the user is free to travel about the Universe.
  • Censorware – Censorware is a category of software that is used to do Internet content blocking or Internet filtering. In other words, Censorware limits the user’s access to content on the Internet. Libraries and schools commonly use this type of filtering software to restrict its users from accessing pornography. Parents may also use censorware to restrict their children’s access to the Internet.
  • CFG: Control Flow Graph – A control flow graph (CFG) is an abstract data structure used in compilers. It is an abstract representation of a procedure or program, maintained internally by a compiler. Each node in the graph represents a basic block, i.e. a straight-line piece of code without any jumps or jump targets; jump targets start a block, and jumps end a block. Directed edges are used to represent jumps in the control flow. There are, in most presentations, two specially designated blocks: the entry block, through which control enters into the flow graph, and the exit block, through which all control flow leaves.
  • CFML: ColdFusion Markup Language – ColdFusion Markup Language(CFML) is a proprietary markup language developed by Allaire for use with ColdFusion. CFML is a tag-based Web scripting language supporting dynamic Web page creation and database access in a Web server environment. In the language, ColdFusion tags are embedded in HTML files.
  • CGI: Common Gateway Interface – The Common Gateway Interface (CGI) is a standard for external gateway programs to interface with information servers such as HTTP servers. CGI scripts are commonly used on Web sites to achieve customised results. Generally, when the visitor performs some action, such as filling in a form or clicking on a link, the server executes a script using information input by the visitor. This allows the appearance or behaviour of the Web site to be customised for that visitor.
  • cgi-bin – cgi-bin is the usual name of the server directory in which Common Gateway Interface (CGI) programs are held.
  • CGI: Computer Generated Imagery – Computer generated imagery (CGI), also known as Computer animation, is the application of the field of computer graphics (or more specifically, 3D computer graphics) to special effects. CGI is used in movies, television programs and commercials, and in printed media. Video games most often use real-time computer graphics (rarely referred to as CGI), but may also include pre-rendered “cut scenes” and intro movies that would be typical CGI applications.
  • Character – In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme or a grapheme-like unit or symbol, such as in an alphabet or syllabary in the written form of a natural language. An example of a character is a letter, numeral, or punctuation mark. This includes all the ASCII and extended ASCII characters, including the space and control characters. In character-based software, everything that appears on the screen, including graphics symbols, is considered to be a character. In graphics-based applications, the term character is generally reserved for letters, numbers, and punctuation.
  • Character Code – Character code is a computer code which represents a particular character or symbol with specific meaning. Most current operating systems use 8-bit character codes: some of which represent commands to the computer, while most of which represent the AlphaNumeric symbols of the main Western Languages. Other languages that use extended or alternate writing systems, such as Asian languages, use 16 bits and are so called Double Byte charater sets.
  • Character Encoding – A character encoding or character set (sometimes referred to as code page) consists of a code that pairs a sequence of characters from a given set with something else, such as a sequence of natural numbers, octets or electrical pulses, in order to facilitate the storage of text in computers and the transmission of text through telecommunication networks. Common examples include Morse code, which encodes letters of the Latin alphabet as series of long and short depressions of a telegraph key; and ASCII, which encodes letters, numerals, and other symbols, both as integers and as 7-bit binary versions of those integers, generally extended with an extra zero-bit to facilitate storage in 8-bit bytes (octets).
  • Character Mapping – Character mapping refers to the process of using a table used in an operating system or font to map the character codes to the glyphs used in a font. Most character encoding uses an 8-bit system allowing a maximum of 256 character codes. Extended or non-AlphaNumeric languages often use 16-bit or Double Byte encoding. Also, Character Maps or not necessarily cross platform compatible. For example, the Macintosh and Windows operating systems use differing character maps. However, Type 1 fonts do contain the glyphs necessary for both these mappings and so work in both Macintosh and Windows systems and others.
  • Character Repertoire – Character repertoire is the set of all characters onto which a coded character set maps integers (code positions).
  • Character Set – Character set is a defined list of characters recognized by the computer hardware and software. Each character is represented by a number. The ASCII character set, for example, uses the numbers 0 through 127 to represent all English characters as well as special control characters. European ISO character sets are similar to ASCII, but they contain additional characters for European languages.
  • Charmap: Character Map – Character Map (charmap.exe) is an applet included with Microsoft Windows operating systems which can be used to inspect the characters in any installed font, to check what keyboard input is used to select those characters, and to copy characters to the clipboard in lieu of typing them in.
  • Checkpoint – Checkpoint, in computer programming, is the point in the program source code where progress can be halted, while running, until conditions are suitable for progression to the next stage.
  • Chinook Checkers Program – Chinook is the first computer program that won the world checker champion title in the competition against humans. Chinook program’s algorithm includes an opening book, a library of opening moves, from games played by grandmasters, deep search algorithm, good move evaluation function and the end-game database having all positions with eight or fewer pieces. The linear handcrafted evaluation function considered several features of the game board including piece count, kings count, trapped kings, turn, runaway checkers (unimpeded path to be kinged) and other minor factors. All of Chinook’s ‘knowledge’ was programmed in by its creators vs the program learning strategies.
  • CIF: Common Intermediate Format – Common Intermediate Format (CIF) is a video format used in videoconferencing systems that supports both NTSC and PAL signals. CIF is part of the ITU H.261 videoconferencing standard. It specifies a data rate of 30 frames per second (fps), with each frame containing 288 lines and 352 pixels per line. CIF is used to standardize the horizontal and vertical resolutions in pixels of YUV sequences in video signals. CIF has many variations for different resolutions and technologies.
  • CIM: Common Information Model – Common Information Model (CIM), a standard defined by organizations such as the Distributed Management Task Force (DMTF) and the IEC, provides a schema that defines how the managed elements in an IT environment are represented as a common set of objects and relationships between them. CIM allows multiple parties to exchange management information about these managed elements. CIM not only represents these managed elements and the management information, but also provides means to actively control and manage these elements. By using a common model of information, management software can be written once and work with many implementations of the common model without complex and costly conversion operations or loss of information. The managed elements represented in the CIM Schema include most of today’s elements in an IT environment, for example Computer systems, Operating systems, Networks, Middleware, Services and Storage.
  • Citadel Software – Citadel is software for running a Bulletin Board System. The first Citadel came online in 1980 with a single 300 baud modem, and some versions of the software, supporting thousands of simultaneous users, are still in use today. Citadel development has always been collaborative with a strong push to keep the source code in the public domain. This makes Citadel one of the oldest surviving FOSS projects.
  • CL: Common LISP – Common Lisp (CL) is a dialect of the Lisp programming language, standardised by ANSI X3.226-1994. Developed to standardize the divergent variants of Lisp which predated it, it is not an implementation but rather a language specification. Several implementations of the Common Lisp standard are available, including commercial products and open source software. Common Lisp is a general-purpose programming language, in contrast to Lisp variants such as Emacs Lisp and AutoLISP which are embedded extension languages in particular products. Unlike many earlier Lisps, Common Lisp (like Scheme) uses lexical variable scope.
  • Class – Class, in the context of object oriented computer language, is the prototype for an object in an object-oriented language; analogous to a derived type in a procedural language. A class may also be considered to be a set of objects which share a common structure and behaviour. The structure of a class is determined by the class variables which represent the state of an object of that class and the behaviour is given by a set of methods associated with the class.
  • Class Library – Class library is a term used in the object oriented language, whcih refers to collections of class definitions and implementations. Software companies like Microsoft created class libraries for reuses in programming. Class libraries and toolkits have the reputation of being open but too-much-assembly-required. A best of both worlds is to deliver a useful application composed from a toolkit where disassembly and reassembly for evolution is supported.
  • Clean Install – Clean install refers to a way to install or upgrade an OS to a computer system. There are two ways to conduct a clean install. (1) upgrade of an operating system (OS) on a hard drive that already has an OS running off of it without carrying over any settings of the older OS, such as user preferences or information about the hardware and/or the software. (2) To install an OS on a hard drive that does not already have an OS installed on it or a newly formatted hard drive.
  • ClearCase – ClearCase, developed by Rational software and now owned by IBM, provides lifecycle management and control of software development assets. With integrated version control, automated workspace management, parallel development support, baseline management, and build-and-release management, ClearCase provides the capabilities needed to create, update, build, deliver, reuse and maintain business-critical assets.
  • ClearDDTS – ClearDDTS is a Distributed Defect Tracking System developed by Rational software and now owned by IBM. ClearDDTS provides change request management for UNIX development, specifically designed to track and manage defects and enhancement requests found during development and quality assurance testing. ClearDDTS can be tightly integrated with software configuration management products, such as Rational ClearCase, to effectively manage change throughout the software development lifecycle.
  • ClearQuest – ClearQuest, developed by Rational software and now owned by IBM, enables better insight, predictability and control of the software development process. Through flexible workflow management and defect and change-tracking across the application lifecycle, Rational ClearQuest helps to automate and enforce development processes, manage issues throughout the project lifecycle, and facilitate communication between all stakeholders across the enterprise.
  • Client – In client/server computing, a client is a system that accesses a (remote) service on another computer by some kind of network. The term was first applied to devices that were not capable of running their own stand-alone programs, but could interact with remote computers via a network. These dumb terminals were clients of the time-sharing mainframe computer.
  • Client-Side – In computer networking, the term client-side refers to operations that are performed by the client in a client-server relationship. Typically, a client is a software program, such as a web browser, that runs on a user’s local computer or workstation and connects to a server as necessary. Operations may be performed on the client-side because they require access to information or functionality that is available on the client, but not on the server because the user needs to observe them or provide input, or because the server lacks the processing power to perform the operations in a timely manner for all of the clients it serves.
  • CLISP – CLISP, a Common Lisp implementation, is part of the GNU project, originally developed by Bruno Haible and Michael Stoll. CLISP includes both an interpreter and a compiler (that compiles to bytecode), as well as a debugger, a socket interface, a high-level foreign language interface, strong internationalization support, and an object system (CLOS, MOP). It is written in C and Common Lisp.
  • Closed Source – Closed source is a term invented as an antonym for open source and used to refer to any program whose licensing terms do not qualify as open source. Generally, it means that the customer will only get a binary version of the computer program they licensed and no copy of the program’s source code, rendering modifications to the software practically impossible from the technical side. The source code in this development model is regarded as a trade secret of the company, so parties that may get source code access, such as colleges, have to sign non-disclosure agreements in advance.
  • ClosedBSD – ClosedBSD is a derivative of FreeBSD aimed at providing firewall and Network Address Translation services. One of the advantages of ClosedBSD is that it can be run directly off a floppy disk or a CD-ROM, with no hard drive required. In spite of its small size, the software includes a fully-functional ncurses-based interface.
  • cmd.exeCmd.exe is the command line interpreter on OS/2 and on Windows NT-based systems (including Windows 2000, XP, and Server 2003). It is the analog of command.com in MS-DOS and Windows 9x systems, or of the shells used on Unix systems. cmd.exe improves on command.com in several areas. It has a greater number of built-in commands, and the error reporting is better. In the OS/2 version of cmd.exe, errors are reported in whatever the current language of system is, their text being taken from the system message files. The help command can then be issued with the error message number to obtain further information. Both the OS/2 and the Windows NT versions of cmd.exe have more detailed error messages than that of command.com.
  • CML: Chemical Markup Language – Chemical Markup Language(CML) is an approach to managing molecular information using tools such as XML and Java. Chemical information is traditionally stored in many different files types which inhibit reuse of the documents. CML uses XML’s portability to help CML developers and chemists design interoperable documents. There are a number of tools that can generate, process and view CML documents. Publishers can distribute chemistry within XML documents by using CML.
  • CMM: Capabilities Maturity Model – Capability Maturity Model (CMM), developed by the Software Engineering Institute (SEI) at Carnegie Mellon University, is a collection of instructions an organization can follow with the purpose to gain better control over its software development process. The CMM ranks software development organizations according to a hierarchy of five process maturity levels. Each level ranks the development environment according to its capability of producing quality software. A set of standards is associated with each of the five levels. The standards for level one describe the most immature, or chaotic, process, and the standards for level five describe the most mature, or quality, process.
  • Coco/R – Coco/R is a compiler generator (Compiler-compiler), which takes an attributed grammar of a source language and generates a scanner and a parser for this language. The scanner works as a deterministic finite automaton. The parser uses recursive descent. LL(1) conflicts can be resolved by a multi-symbol lookahead or by semantic checks. Thus the class of accepted grammars is LL(k) for an arbitrary k.
  • COCOMO: Constructive Cost Model – Constructive Cost Model(COCOMO) is a method of estimating the number of man-months it will take to develop a software product. There are three levels in the COCOMO: – 1) Basic COCOMO – is a static, single-valued model that computes software development effort (and cost) as a function of program size expressed in estimated lines of code. – 2) “cost drivers” that include subjective assessment of product, hardware, personnel and project attributes. – 3) Detailed COCOMO – incorporates all characteristics of the intermediate version with an assessment of the cost driver’s impact on each step (analysis, design, etc.) of the software engineering process.
  • Code – Code, in Computer Programming refers to source code or machine code. Source code is any series of statements written in some human-readable computer programming language, while machine code refers to instructions for a computer processor in some machine language. The word “code” is often used to distinguish instructions from data.
  • Code Co-op – Code Co-op is the peer-to-peer version control system made by Reliable Software. Code Co-op uses peer-to-peer architecture to share projects among developers and to control changes to files. Instead of using a centralized database (the repository), it replicates its own database on each computer involved in the project.
  • Code Generation – Code generation is the process by which a compiler converts a syntactically-correct program (source code) into a series of instructions that could be executed by a machine (Machine code). The input to the code generation stage typically consists of a parse tree, abstract syntax tree, or intermediate language code; the target machine may be a physical machine such as a microprocessor, or an abstract machine such as a virtual machine or an intermediate language, (human-readable code).
  • Codec: Compression/Decompression – In computing world, Codec refers to compression/decompression, which typically is an algorithm or specialized computer program that encodes or reduces the number of bytes consumed by large files and programs. Files encoded with a specific codec require the same codec for decoding. MPEG is a type of codec algorithms.
  • Coded Character Set – Coded character set, also known as character encoding or character set, refers to the mapping from a set of integers to a set of characters. This mapping is generally 1:1. In ASCII code set, for example, the code position 65 in ASCII maps only to “A”, and it’s the only position that maps to “A”.
  • CodeView – CodeView was a standalone debugger that originally shipped with Microsoft C/C++ 7.0 and earlier. It also shipped with Visual Basic for DOS. Upon the release of Microsoft Visual C++ 1.0, the functionality of CodeView was integrated into a single programming environment, known as the Integrated Development Environment (IDE). This integration is seen by many developers to be a more natural way of developing software since coding and debugging can be done without switching programs or context.
  • CodeWarrior – CodeWarrior is an integrated development environment from Metrowerks for the Macintosh, Microsoft Windows, Linux and other systems such as embedded systems from Freescale Semiconductor. (Metrowerks is a wholly-owned subsidiary of Freescale.) Specialized versions for the Sony PlayStation 2, Nintendo GameCube, Palm OS, and Symbian OS also exist, and there was even a version for BeOS.
  • Coding – In computer hardware, coding is the process of converting information obtained on a subject or unit into coded values (typically numeric) for the purpose of data storage, management, and analysis. While in software, coding means implement a programing logic using a specific language such as C or C++. In cryptography, coding refers to the act of writing in code or cipher.
  • COE: Common Operating Environment – Common operating environment (COE) specifies a common IT architecture within an organization and promotes interoperability and cross-platform capabilities among an organization’s devices. In a COE, all workstations within an organization run the same software and use the same interfaces so that its devices are standardized and information presentation and platform interfaces are consistent throughout the organization.
  • Cognitive Architecture – A cognitive architecture is a computational process that acts like a certain cognitive system, most often, like a person, or acts intelligent under some definition. The term architecture implies an approach that attempts to model not only behavior, but also structural properties of the modelled system.
  • ColdFusion – ColdFusion is a product that includes a server and a development toolset designed to integrate databases and Web pages. ColdFusion was created by Allaire Corporation of Cambridge, Mass. which merged with Macromedia and now part of Adobe Systems. With ColdFusion, a user could enter a zip code on a Web page, and the server would query a database for information on the nearest movie theaters and present the results in HTML form. Cold Fusion Web pages include tags written in Cold Fusion Markup Language (CFML) that simplify integration with databases and avoid the use of more complex languages like C++ to create translating programs.
  • Collaborative Software – Collaborative software, also called social software, is a type of software that allows people to work together on the same documents and projects over local and remote networks. Collaborative software embraces the communications systems as well, including e-mail, videoconferencing, instant messaging and chat. Lotus Notes is an example of collaborative software.
  • COM: Component Object Model – Component Object Model (COM) is a Microsoft platform for software componentry introduced in 1993, largely to replace the interprocess communication mechanism DDE used by the initial release of OLE. It is used to enable interprocess communication and dynamic object creation in any programming language that supports the technology. The term COM is often used in the software development world as an umbrella term that encompasses the OLE, OLE Automation, ActiveX, COM+ and DCOM technologies. COM provides a language-neutral way of implementing objects such that they can be used in environments different from the one they were created in, even across machine boundaries. For well-authored components, COM allows reuse of objects with no knowledge of their internal implementation because it forces component implementers to provide well-defined interfaces that are separate from the implementation.
  • Command – Command, in computing, refers to an instruction to a computer or device to perform a specific task. Every program that interacts with people responds to a specific set of commands. The set of commands and the syntax for entering them is called the user interface. Commonly a command is a directive to some kind of command line interface, such as a command interpreter. Commands come in different forms such as: 1) special words (keywords) that a program understands 2) function keys 3) choices in a menu 4) buttons or other graphical objects on your screen.
  • Command Interpreter – Command interpreter is a program which reads textual commands from the user or from a file and executes them. Some commands may be executed directly within the interpreter itself (e.g. setting variables or control constructs), others may cause it to load and execute other files. Unix’s command interpreters are known as shells.
  • Command.comCOMMAND.COM is the name for the default operating system shell (or command line interpreter) for DOS and 16/32bits versions of Windows (95/98/98 SE/Me). It also has an additional role, as the first program run after boot, hence being responsible for setting up the system by running the AUTOEXEC.BAT configuration file, and being the ancestor of all processes. COMMAND.COM has two distinct modes of work. First is the interactive mode, in which the user types commands which are then executed immediately. The second is the batch mode, which executes a predefined sequence of commands stored as a text file with the extension .BAT. Its function as the default command interpreter is analogous to that of the Unix shells, although COMMAND.COM’s functionality is considerably more limited than that of its Unix counterparts. cmd.exe is COMMAND.COM’s successor on Windows NT/2000/XP/2003 and OS/2. COMMAND.COM is also available on those systems to provide compatibility when running DOS applications.
  • Commercial Software – Commercial software is a computer software sold for commercial purposes or that serves commercial purposes. The most famous examples of commercial software are the products offered on the IBM PC and clones in the 1980s and 90s, including famous programs like Lotus 123, Word Perfect and the various parts that make up Microsoft Office. Commercial software may be re-packaged in boxes and sold in retail stores or directly from vendors. Downloadable software over the Internet for commercial purpose is becoming popular.
  • Common Core Services – Common core services are services that the operating system has to take care of, these are usually administrated by the Kernel of an operating system. These may include: – Memory management – Internet functionality – Network Security features – Library manager – loader – Execute applications – Disk access – User interface – Application programming interface
  • Communications Software – Communications software refers to the type of software that is used for network communication purpose. For example, the software used to send and receive data over telephone lines through modems.
  • Compatible – Compatible, in computer industry, refers to the ability of one device or program to work with another device or program. For example, a printer and a computer are said to be compatible if they can be connected to each other. An IBM compatible PC, on the other hand, is a computer that can run the same software as an IBM PC.
  • Compiler – Compiler is a type of computer program that translates source code into object code. A compiler is likely to perform many or all of the following operations: lexing, preprocessing, parsing, semantic analysis, code optimizations, and code generation.
  • Compiler Bug – A compiler bug is a type of computer bug. Compiler bug may cause translating the source program incorrectly, so that when the program runs it produces the wrong answer or some error message that does not really relate to the original program. Some compilers also attempt to optimize the source code during translation, so that it will run faster, or use less memory, or both. This optimization is often the most complicated part of a compiler, and hence is likely to have the most bugs.
  • Compiler Directive – Compiler directive is data embedded in source code by programmers to tell compilers some intention about compilation. A compiler directive often tells the compiler how to compile; other source code tells the compiler what to be compiled.
  • Compiler Optimization – Compiler optimization is the process of using some optimization techniques that have been programmed into a compiler, to improve the performance or reach other objectives of the source code. These techniques are automatically applied by the compiler whenever they are appropriate. Because programmers no longer need to manually apply these techniques, programmers are free to write source code in a straightforward manner, expressing their intentions clearly. Then the compiler can choose the most efficient way to handle the implementation details.
  • Compiler-Compiler – A compiler-compiler, also known as a parser generator, is a utility for generating the source code of a parser, interpreter or compiler from an annotated language description in the form of a grammar (usually in BNF) plus code that is associated with each of the rules of the grammar that should be executed when these rules are applied by the parser. These pieces of code are sometimes referred to as semantic action routines since they define the semantics of the syntactic structure that is analysed by the parser.
  • Componetware: Component Software – Component software (componentware) is a type of software designed to work as a component of a larger application. The goal of component software is to standardize the interfaces between software components so that all components can work together seamlessly. Therefore, ideally, it is possible to mix software components from different manufacturers in a single system. Two standards — OLE and OpenDoc — are designed to help programmers develop components that can work together.
  • Computational Linguistics – Computational linguistics is an interdisciplinary field dealing with the statistical and logical modeling of natural language from a computational perspective. This modeling is not limited to any particular field of linguistics. Computational linguistics was formerly usually done by computer scientists who had specialized in the application of computers to the processing of a natural language. Recent research has shown that language is much more complex than previously thought, so computational linguistics work teams are now sometimes interdisciplinary. Computational linguistics draws upon the involvement of linguists, computer scientists, experts in artificial intelligence, cognitive psychologists and logicians, amongst others.
  • Computational Science – Computational science, also known as scientific computing, is the field of study concerned with constructing mathematical models and numerical solution techniques and using computers to analyze and solve scientific and engineering problems. In practical use, it is typically the application of computer simulation and other forms of computation to problems in various scientific disciplines such as Physics. Computational science and computer science are very different fields.
  • Computer Animation – Computer animation, also known as Computer generated imagery (CGI) is the art of creating moving images via the use of computers. It is a subfield of computer graphics and animation. Increasingly it is created by means of 3D computer graphics, though 2D computer graphics are still widely used. Sometimes the target of the animation is the computer itself, sometimes the target is another medium, such as film.
  • Computer Game – A computer game is a computer-controlled game with or without video technologies involved. In common usage, a “computer game” or a “PC game” refers to a game that is played on a personal computer. There always must also be some sort of input device, usually in the form of button/joystick combinations (on arcade games), a keyboard & mouse/trackball combination (computer games), or a controller (console games), or a combination of any of the above. Also, more esoteric devices have been used for input (see also Game controller). Usually there are rules and goals, but in more open-ended games the player may be free to do whatever they like within the confines of the virtual universe.
  • Computer Graphics – Computer graphics (CG) is the field of visual computing, where one utilizes computers both to generate visual images synthetically and to integrate or alter visual and spatial information sampled from the real world. Computer graphics field can be divided into several areas: real-time 3D rendering (often used in video games), computer animation, video capture and video creation rendering, special effects editing (often used for movies and television), image editing, and modeling (often used for engineering and medical purposes). Development in computer graphics was first fueled by academic interests and government sponsorship. However, as real-world applications of computer graphics in broadcast television and movies proved a viable alternative to more traditional special effects and animation techniques, commercial parties have increasingly funded advances in the field.
  • Computer Science – Computer science, or computing science, is an academic field that studys the theoretical foundations of information and computation and their implementation and application in computer systems. Computer science has many sub-fields; some emphasize the computation of specific results (such as computer graphics), while others (such as computational complexity theory) relate to properties of computational problems. Still others focus on the challenges in implementing computations. For example, programming language theory studies approache to describing computations, while computer programming applies specific programming languages to solve specific computational problems.
  • ConceptBase – ConceptBase is a deductive and object-oriented database management system based on Datalog rather than SQL. It stores all factual information in a single flat data structure called P-facts. On top of that deductive rules, integrity constraints, and queries are defined to capture the semantics of the application domain. The main application domain of ConceptBase is conceptual modeling, model management, and meta modeling.
  • Config Files: Configuration Files – In computing, configuration files (config files) are used to configure the initial settings for some computer programs. They are used for user applications, server processes and operating system settings. The files are often written in ASCII (rarely UTF-8) and line-oriented, with lines terminated by a newline or carriage return/line feed pair, depending on the operating system. They may be considered a simple database.
  • CONFIG.SYSCONFIG.SYS is the primary configuration file for the MS-DOS and OS/2 operating systems. It is a special file that contains setup or configuration instructions for the computer system. The commands in this file configure DOS for use with devices and applications in the system. The commands also set up the memory managers in the system. After processing the CONFIG.SYS file, DOS proceeds to load and execute the command shell specified in the shell= line of CONFIG.SYS, or COMMAND.COM if there is no such line. The command shell in turn is responsible for processing the AUTOEXEC.BAT file.
  • Configuration – In communications or computer systems, configuration is the way a system is set up, or the assortment of components that make up the system. Configuration can refer to either hardware or software, or the combination of both. Often, configuration pertains to the choice of hardware, software, firmware, and documentation. The configuration affects system function and performance.
  • Configuration Management – In software development, configuration management is a system for keeping track of large software projects. Configuration management system include functions such as version control and automatically documents all components used to build executable programs. It is able to recreate each build as well as to recreate earlier environments in order to maintain previous versions of a product. It may also be used to prevent unauthorized access to files or to alert the appropriate users when a file has been altered.
  • Constant Folding – Constant folding is one of the compiler optimization techniques used by many modern compilers. Constant folding is the process of simplifying constant expressions at compile time. Terms in constant expressions are typically simple literals, such as the integer 2, but can also be variables whose values are never modified, or variables explicitly marked as constant.
  • Constant Propagation – Constant propagation is one of the compiler optimization techniques used by many modern compilers. Constant propagation is the process of substituting the values of known constants in expressions at compile time. Such constants include those defined above, as well as intrinsic functions applied to constant values.
  • Constraint Logic Programming – Constraint logic programming is a form of constraint programming, in which logic programming is extended to include concepts from constraint satisfaction. A constraint logic program is a logic program that contains constraints in the body of clauses. An example of a clause including a constraint is A(X,Y) :- X+Y>0, B(X), C(Y). In this clause, X+Y>0 is a constraint; A(X,Y), B(X), and C(Y) are literals like in regular logic programming. Intuitively, this clause tells one condition under which the statement A(X,Y) holds: this is the case if X+Y is greater than zero and both B(X) and C(Y) are true.
  • Constraint Programming – Constraint programming is a programming paradigm where relations between variables can be stated in the form of constraints. Constraints differ from the common primitives of other programming languages in that they do not specify a step or sequence of steps to execute but rather the properties of a solution to be found. The constraints used in constraint programming are of various kinds: those used in constraint satisfaction problems, those solved by the simplex algorithm, and others. Constraints are usually embedded within a programming language or provided via separate software libraries.
  • Constraint Satisfaction – In artificial intelligence and operations research, constraint satisfaction is the process finding a solution to a set of constraints. Such constraints express allowed values for variables, and a solution is therefore an evaluation of these variable that satisfies all constraints.
  • Content Management System – A content management system is a computer software system for organizing and facilitating collaborative creation of documents and other content. For example, a content management system may be a web application used for managing websites and web content. They can also be used for storage and single sourcing of documentation for a firm including but not limited to operators’ manuals, technical manuals, sales guides, etc.
  • Control Panel – Control panel refers to the front end of a system which can set the configuration of the system. For example, in a PC or a Macintosh, control panel is part of the operating system that has the ability to control an aspect of system configuration, such as the display, software add/remove, language and network properties.
  • Cooperative Multitasking – Cooperative multitasking, also known as non-preemptive multitasking, is a form of multitasking where it is the responsibility of the currently running task to give up the processor to allow other tasks to run. This contrasts with pre-emptive multitasking where the task scheduler periodically suspends the running task and restarts another. Cooperative multitasking has the advantage of making the operating system design much simpler, but it also makes it less stable because a poorly designed application may not cooperate well, and this often causes system freezes.
  • Copy Propagation – Copy propagation, a optimization technique in the program compiler, is the process of replacing the occurrences of targets of direct assignments with their values. A direct assignment is an instruction of the form x = y, which simply assigns the value of y to x. Copy propagation is a useful “clean up” optimization frequently used after other optimizations have already been run.
  • Copycat – Copycat refers to the tendency of humans to duplicate the behavior of others. Copycat is also the name of a model of analogy making and human cognition based on the concept of the parallel terraced scan, developed by Douglas Hofstadter, Melanie Mitchell, and others.
  • Copyleft – In a non-legal sense, copyleft, a play on the word copyright, is the opposite of copyright. Copyleft refers to the practice of using copyright law to remove restrictions on the distribution of copies and modified versions of a work for others and require the same freedoms be preserved in modified versions. A widely used copyleft license is the GNU General Public License (GPL). Many fans of copyleft media believe that copyleft is a cross between copyright and public domain.
  • Copyright – Copyright is a set of exclusive rights regulating the use of a particular expression of an idea or information, including but not limited to art designs, computer software, books, documents etc. At its most general, it is literally “the right to copy” an original creation. In most cases, these rights are of limited duration. The symbol for copyright is ©, and in some jurisdictions may alternately be written (c).
  • Copyright Infringement – The copyright infringement of software refers to several practices when done without the permission of the copyright holder: – 1. Creating a copy and selling it. This is the act most people refer to as software piracy. It is illigel in most countries. – 2. Creating a copy and giving it to someone else. This constitutes copyright infringement in most jurisdictions. It is not infringing under specific circumstances such as fair use and fair dealing. – 3. Creating a copy to serve as a backup. This is seen as a fundamental right of the software-buyer in some countries. It can be infringement, depending on the laws and the case law interpretations of those laws. – 4. Renting the original software. Software licenses often try to restrict the usual right of a purchaser of a copyrighted work to let others borrow the work. In some jurisdictions the validity of such restrictions are disputed. – 5. Reselling the original software. Licenses often say that the buyer does not buy the software but instead pays for the right to use the software. Therefore, the buyer can not resell the software without specific permission of the software vendor.
  • CORC: CORnell Compiler – CORnell Compiler(CORC) was a simple computer language developed at Cornell University in 1962 to serve students for math problems. Its developers, industrial engineering professors Richard Conway and William Maxwell and mathematics professor Robert J. Walker, sought to create a diagnostic compiler in PL/I which could both expose math and engineering students to computing and remove the burden of mechanical problem-solving from their professors.
  • CORE: Challenge of Reverse Engineering – Challenge of Reverse Engineering (CORE) is a software cracking group for the IBM PC which was founded in June of 1997 by a team of members from Ontario, Canada. Within four years the group made more than 10,000 releases (cracks, key generators and the like). These days the group is growing larger and there are already subgroups — COREPDA (which is “working” with software for PocketPC, PDA etc.) and COREUtile. The Group CORE is today active and still “working”.
  • CosmicOS – CosmicOS is a self-contained message designed to be understood primarily by treating it as a computer program and executing it. Self-contained messages are of interest for CETI research, but there is much difference of opinion over the most appropriate encoding and broadcast medium to use. CosmicOS is released in modular form, so that the basic message can be adapted to a particular concrete instantiation.
  • Course Management System – A course management system is a computer program that facilitates computerised learning or e-learning, especially by helping teachers and learners with course administration. Such e-learning system is also called Learning Management Systems (LMS), Virtual Learning Environments (VLE), education via computer-mediated communication (CMC) or Online Education.
  • Crack Intro – A crack intro, also known as a cracktro, loader, or just intro, is a small introduction sequence added to cracked software, designed to inform the user which “cracking crew” or individual cracker was responsible for removing the software’s copy prevention and distributing the crack.
  • Critical Section – In computer programming a critical section is a piece of code or a set of instructions that can only be executed by one process or thread at a time. If the instructions are interrupted, a race condition might occur. It will usually terminate in fixed time, and a process will only have to wait a fixed time to enter it. Some synchronisation mechanism is required at the entry and exit of the critical section to ensure exclusive use.
  • CRM: Customer Relationship Management – Customer Relationship Management(CRM) is an information system that is used to plan, schedule and control the presales and postsales activities in an organization to manage customer relationships. CRM embraces all aspects of dealing with prospects and customers, including the call center, sales force, marketing, technical support and field service. There are three parts of application architecture of CRM: – Operational – automation to the basic business processes (marketing, sales, service) – Collaborative – ensures the contact with customers (phone, email, fax, web, sms, post, in person)
  • Cron – Cron is a Unix application that runs jobs for users and administrators at scheduled times of the day.
  • Cross Compiler – A cross compiler is a compiler capable of creating executable code for another platform than the one on which the cross compiler is run. Such a tool is handy when you want to compile code for a platform that you don’t have access to, or because it is inconvenient or impossible to compile on that platform (as is the case with embedded systems.)
  • Crowd Simulation – Crowd simulation is the process of simulating the movement of a large number of objects or characters, now often appearing in 3D computer graphics for film. The need for crowd simulation arises when a scene calls for more characters than can be practically animated using conventional systems, such as skeletons/bones.
  • CSCI: Computer Software Configuration Item – Computer Software Configuration Item(CSCI) is a group of software treated as a single entity by a configuration management (CM) system. CSCI is for configuration control at the system architectural design, by contractual specification, or as development products. CSCI entities include software products to be developed or used under contract, and certain elements required from the software development environment.
  • CSE: Common Subexpression Elimination – Common subexpression elimination (CSE), a term in compiler theory, is the practice of finding repeated redundant expression evaluations, and replacing them with a single computation assigned to a temporary variable. Although it can be done manually, the term usually refers to a compiler optimization.
  • CSV: Comma Separated Values – Comma Separated Values (CSV) is a data type that is commonly used no-frills text file format for import from and export to spreadsheets and SQL databases.
  • CUA: Common User Access – Common User Access (CUA) is a set of guidelines for the user interface to personal computer operating systems and computer programs, developed by IBM starting in 1987 as part of their Systems Application Architecture. Used originally in the OS/2 and Microsoft Windows operating systems, parts of the CUA standard are now implemented in programs for other operating systems, including variants of Unix. Java AWT and Swing use it as well. The CUA contains standards for the operation of dialog boxes, menus and keyboard shortcuts. For example, in programs written to the CUA standard, help is always summoned by pressing the F1 function key. New programs should be easier to use because users will not have to learn new commands to perform standard tasks.
  • Cubase – Cubase is a MIDI, music sequencer and digital audio editing computer application (commonly known as a DAW – Digital Audio Workstation) created by the German firm Steinberg in 1989. Cubase started as a MIDI recording and editing tool. Later, features for recording raw audio were introduced. Cubase was originally written for the Atari ST, and has since been ported to Apple Macintosh and Microsoft Windows.
  • Custom Software – Custom software, also called bespoke software, is software that was developed with a specific organization and its requirements in mind. Custom software is necessary when mass market software does not satisfy the functionalities required.
  • Customized Toolbar – Customized toolbar is a toolbar that can be custom configured (modified) by the user. For example, buttons in the toolbar can be added and deleted as required.
  • CVS: Concurrent Versions System – The Concurrent Versions System (CVS), also known as the Concurrent Versioning System, implements a version control system: it keeps track of all work and all changes in a set of files, typically the implementation of a software project, and allows several (potentially widely separated) developers to collaborate. CVS has become popular in the free software and open-source worlds. CVS is released under the GNU General Public License.
  • Cwiab: Church Website in a Box – Church Website in a Box (CWIAB) is a free, open source content management system created from Postnuke, released under the GNU General Public License. The CWIAB project was started because Postnuke was very well suited for use by churches, but quite a bit of effort was still required collecting various PostNuke modules and installing them. Church Website in a Box can be installed in minutes and provides adequate functionality for most churches ‘out of the box.’ CWIAB is not a fork, but a collection of PostNuke and relevant modules.
  • Cyclomatic Complexity – Cyclomatic complexity is a software metric (measurement) concept in computational complexity theory. It was developed by Thomas McCabe and is used to generally measure the complexity of a program. It directly measures the number of linearly independent paths through a program’s source code.
  • Cygwin – Cygwin is a collection of free software tools originally developed by Cygnus Solutions to allow various versions of Microsoft Windows to act somewhat like a UNIX system. It aims mainly at porting software that runs on POSIX systems (such as Linux systems, BSD systems, and UNIX systems) to run on Windows with little more than a recompilation. Cygwin is currently maintained by employees of Red Hat and others.

D

  • Daemon – In Unix and other computer multitasking operating systems, a daemon is a computer program that runs in the background, rather than under the direct control of a user; they are usually instantiated as processes. The Daemon program, often started at the time the system boots and runs continuously without intervention from any of the users on the system, forwards the requests to other programs (or processes) as appropriate. Typically daemons have names that end with the letter “d”; for example, syslogd is the daemon which handles the system log. Windows OS refers to daemons as System Agents and services.
  • DAM: Digital Asset Management – Digital asset management (DAM) refers to the practice and domain of organizing digital files, like images, documents, videos and presentations. The term asset is used to indicate that such files have some sort of intrinsic value that makes it worthwhile to manage them. DAM is related to and can be considered a superset of content management. For more information see also digital asset management systems and content management systems. To manage digital assets effectively, assets must be made available to the people who need them to efficiently contribute to the growth of the culture using them.
  • DARCS: David’s Advanced Revision Control System – David’s Advanced Revision Control System (Darcs) is a distributed software revision control system designed by David Roundy to replace the centralized Concurrent Versions System (CVS). In the Darcs Each copy of the source tree acts as a full repository, allowing several different versions to be maintained in different locations. Patches are global to the repository and are subject under certain conditions to reordering, as governed by the project’s theory of patches
  • Data – Data, in information industry, refers to distinct pieces of information, usually formatted in a special way. All information system is divided into two general categories: data and programs. Data can exist in a variety of forms – as numbers or text on pieces of paper, as bits and bytes stored in electronic memory, or as facts stored in a person’s mind. Programs refer to the collections of instructions for manipulating data, which may be software programs for compute processing, or a set of instructions for manual data operation.
  • Data Architect – A data architect is a person responsible for making sure an organization’s strategic goals are optimized through the use of enterprise data standards. Data architect’s job frequently includes the set up and maintain a metadata registry and allows domain-specific stakeholders to maintain their own data elements.
  • Data Architecture – Data architecture describes how data is processed, stored, and utilized in a given system. It provides criteria for data processing operations that make it possible to design data flows and also control the flow of data in the system. Data architecture also includes topics such as metadata management, business semantics, data modeling and metadata workflow management.
  • Data Cleansing – Data cleansing, also called as data scrubbing, is the process of detecting and removing and/or correcting a database to increase data accuracy, reduce redundancy and enhance consistency of different sets of data that have been merged from separate databases. Sophisticated software applications are available to clean a database data using algorithms, rules and look-up tables, a task that was once done manually and therefore still subject to human error.
  • Data Conversion – Data conversion is the conversion of one form of computer data to another–the changing of bits from being in one format to a different one, usually for the purpose of application interoperability or of capability of using new features. At the simplest level, data conversion can be exemplified by conversion of a text file from one character encoding to another. More complex conversions are those of office file formats, and conversions of image and audio file formats are an endeavor that is beyond the ken of ordinary computer users.
  • Data Element – Data element, as a term used in metadata, is an atomic unit of data that has the following characters: 1) An identification such as a data element name; 2) A clear data element definition; 3) One or more representation terms; 4) Optional enumerated values Code (metadata); 5) A list of synonyms to data elements in other metadata registries Synonym ring. Data elements usage can be discovered by inspection of software applications or application data files through a process of manual or automated Application Discovery and Understanding. Once data elements are discovered, they can be registered in a metadata registry.
  • Data element definition – In metadata, a data element definition is a human readable phrase or sentence associated with a data element within a data dictionary that describes the meaning or semantics of a data element. Data element definitions are critical for external users of any data system. Good definitions can dramatically ease the process of mapping one set of data into another data set of data. This is a core feature of distributed computing and intelligent agent development.
  • Data Mapping – Data mapping is the process of creating data element mappings between two distinct data models. Data mapping is the first step in creating a data transformation between a data source and a destination. For example, a company that would like to transmit and receive purchases and invoices with other companies might use data mapping to create data maps from a company’s data to standardized ANSI ASC X12 messages for items such as purchase orders and invoices.
  • Data Migration – Data migration refers to the translation of data between storage types, formats, or computer systems. Data migration is necessary when an organization decides to use a new computing systems or database management system that is incompatible with the current system. Data migration is usually performed programatically to achieve an automated migration, freeing up human resources from tedious tasks. It is required when organizations or individuals change computer systems or upgrade to new systems.
  • Data Modeling – Data modeling is the process of structuring and organizing data. It defines a structure for data that is typically implemented in a database management system and that enables (and limits) to enter data in that structure. Data modeling is often the first step in database design and object-oriented programming as the designers first create a conceptual model of how data items relate to each other. Data modeling involves a progression from conceptual model to logical model to physical schema.
  • Data Processing – Data processing is a computer process that converts data into required information. The processing is usually assumed to be automated and running on a computer. There are many data processing applications, such as accounting programs that convert raw financial data into meaninful reports for various purpose. Another example is customer relationship management systems (CRM) and employee relationship data systems.
  • Data Scrubbing – Data scubbing, also called as data cleaning, is the process of detecting and removing and/or correcting a database to increase data accuracy, reduce redundancy and enhance consistency of different sets of data that have been merged from separate databases. Sophisticated software applications are available to clean a database data using algorithms, rules and look-up tables, a task that was once done manually and therefore still subject to human error.
  • Data Structure – Data structure is the pattern to store data in a computer so that it can be used efficiently. Often a carefully chosen data structure will allow a more efficient algorithm to be used. The choice of the data structure often begins from the choice of an abstract data structure. A well-designed data structure allows a variety of critical operations to be performed, using as few resources, both execution time and memory space, as possible. Data structures are implemented using the data types, references and operations on them provided by a programming language.
  • Data Transformation – Data transformation converts data from a source data format into destination data. Data transformation can be divided into two steps: 1) data mapping maps data elements from the source to the destination and captures any transformation that must occur; 2) code generation that creates the actual transformation program.
  • Database Administration – Database administration refers to duties, typically performed by a DBA in an organization, such as disaster recovery (backups and testing of backups), performance analysis and tuning, and some database design or assistance thereof.
  • Database Model – A database model is a theory or algorithm describing how a database is structured and used. Several such models have been suggested, for example, Hierarchical model, Network model, Relational model, Object-Relational model, Object model, Associative, Concept-oriented, Entity-Attribute-Value, Multi-dimensional model, Semi-structured, and Star schema.
  • Database Normalization – Databases normalization is a process that eliminates redundancy, organizes data efficiently, reduces the potential for anomalies during data operations and improves data consistency. The formal classifications used for quantifying “how normalized” a relational database is are called normal forms. A non-normalized database is vulnerable to data anomalies because it stores data redundantly. If data is stored in two locations, but later is updated in only one of the locations, then the data is inconsistent; this is referred to as an “update anomaly”. A normalized database stores non-primary key data in only one location.
  • Database Object – Database Object is a piece of information or record that is stored in a database.
  • Database Query Language – Database query language is a kind of programming language to retrieve information from a database. The person formulating the query is expected to understand the relevant rules for formulating the query, and to program the query according to the requirements. Examples of the database query language are the CODASYL database language, “network” databases, relational algebra, relational calculus, Datalog, SQL3, QUEL, XPointer, XPath and OQL.
  • Database Server – A database server is a computer program that provides database services to other computer programs or computers, as defined by the client-server model. The term may also refer to a computer dedicated to running such a program. Database management systems frequently provide database server functionality, and some DBMS’s (e.g., MySQL) rely exclusively on the client-server model for database access.
  • Datalog – Datalog is a query and rule language for deductive databases that syntactically is a subset of Prolog. Query evaluation with Datalog is sound and complete and can be done efficiently even for large databases. Query evaluation is usually done using bottom up strategies. For restricted forms of datalog that don’t allow any function symbols, safety of query evaluation is guaranteed.
  • Dating Software – Dating software refers to software that powers a dating website. This software runs on the server (computer) that hosts the dating website.
  • DB/DC: Database/Data Communications – Database/Data Communications (DB/DC) refers to the software system that has both database and communications capabilities.
  • DB: Database – Database(DB) is a collection of organized information and data. In computer industry, database is an electronic filing system. Various techniques are used to model data structure. Most database systems are built around one particular data model, although it is increasingly common for products to offer support for more than one model. Traditional databases are organized by fields, records, and files. A field is a single piece of information; a record is one complete set of fields; and a file is a collection of records.
  • DB2: DataBase 2 – DB2, abbreviated from DataBase 2, is a relational database system developed by IBM Corporation, originally for use on large mainframe computer systems. It has since been ported to a variety of platforms including SunOS, Solaris, Linux, Windows 95/98/NT/2000 and HP-UX. DB2 can be administered from either the command-line or a GUI. DB2 has APIs for .NET CLI, Java, Python, Perl, PHP, Ruby on Rails, C++, C, REXX, PL/I, COBOL, RPG, FORTRAN, and many other programming languages. DB2 also supports integration into the Eclipse and Visual Studio .NET integrated development environments.
  • DBA: Database Administrator – A database administrator (DBA) is a person who is responsible for the environmental aspects of a database. The duties of a database administrator varies depending on job description, corporate and Information Technology (IT) policies and the technical features and capabilities of the database management systems (DBMSs) being administered. They nearly always include disaster recovery (backups and testing of backups), performance analysis and tuning, and some database design or assistance thereof.
  • DBase – DBase is a commercial relational database management system intruduced first by Ashton-Tate corporation in the early 1980s and now belongs to the dBase Corporation. DBASE was never able to make transition successfully to Microsoft Windows and was eventually displaced by newer products like Paradox, Clipper, FoxPro, and Microsoft Access.
  • DBCS: Double-Byte Character Set – Double-Byte Character Set (DBCS) is a type of character encoding scheme which uses 16-bits (two-bytes) rather than 8-bits (one-bytes) characters. Using double-byte characters expands the possible number of combinations of 1s and 0s from 256 (as in ASCII) to 65,536 (or 256 x 256). Double-byte character sets are needed for such languages as Japanese, Chinese, and Korean. DBCS has different flavors, for example, double byte for ALL characters (including control character), or double byte only for image characters.
  • DBI: DataBase Interface for Perl – The DBI (DataBase Interface) is the standard database interface module for Perl programming language. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. The DBI and DBD Perl packages allow Perl programmers to view the many database environments that are on the market in a uniform way.
  • DBMS: Database Management Ssystem – Database management system (DBMS) is a system or software designed to manage a database, and run operations on the data requested by numerous clients. Typical examples of DBMS use include accounting, human resources and customer support systems. DBMS enables user to store, modify, and extract information from a database. There are many different types of DBMSs, ranging from small systems that run on personal computers to huge systems that run on mainframes.
  • Dbx Debugger – Dbx is a popular, UNIX-based source-level debugger found primarily on Solaris, AIX, IRIX, and BSD UNIX systems. It provides symbolic debugging for programs written in C, C++, Pascal, and Fortran.dbx is also available on IBM z/OS systems, in the UNIX System Services component. dbx for z/OS can debug programs written in C and C++. It can also perform machine level debugging. As of z/OS V1R5, dbx is able to debug programs using the DWARF debug format. z/OS V1R6 added support for debugging 64-bit programs.
  • DCL: Data Control Language – Data Control Language (DCL) is a computer language for controlling access to data in a database. Examples of DCL commands are GRANT and REVOKE.
  • DCOM: Distributed Component Object Model – Distributed Component Object Model (DCOM), developed by Microsoft and previously called Network OLE, enables software components to communicate directly over a network. DCOM is designed for use across multiple network transports, including such Internet protocols as HTTP.
  • DDD: Data Display Debugger – Data Display Debugger (DDD) is a popular graphical user interface for command-line debuggers such as GDB, DBX, JDB, WDB, XDB, the Perl debugger, and the Python debugger.DDD is licensed under the GNU GPL and is open source.
  • DDL: Data Definition Language – Data Definition Language(DDL) is a computer language for defining data. XML Schema is an example of a pure DDL (although only relevant in the context of XML). A subset of SQL’s instructions forms another DDL.
  • DDMS: Distributed Database Management System – Distributed database management system (DDMS) is a software system that permits the management of the distributed database and makes the distribution transparent to the users. Distributed database is a collection of multiple, logically interrelated databases distributed over a computer network. Sometimes distributed database system is used to refer jointly to the distributed database and the distributed Database Management System(DBMS). Distributed database management systems can be architected as client-server systems or peer-to-peer ones. In the former, one or more servers manage the database and handle user queries that are passed on by the clients. The clients usually have limited database functionality and normally pass the SQL queries over to the servers for processing. In peer-to-peer systems, each site has equal functionality for processing.
  • DDT: Dynamic Debugging Technique – Dynamic Debugging Technique (DDT) was the name of several debugger programs originally developed for DEC hardware, originally known as DEC Debugging Tape because it was distributed on paper tape. The first version of DDT was developed at MIT for the PDP-1 computer in 1961, but newer versions on newer platforms continued to use the same name.
  • Dead Code – In computer programming, dead code, also known as unreachable code, typically consists of blocks of programming instructions or entire routines that will never be accessed because all calls to them have been removed, or code that cannot be reached for some reason. Dead code is undesirable for a number of reasons, but primarily because it suggests that there is a fault in the software. Detecting dead code is a form of static analysis and involves performing control flow analysis to find any code that will never be executed regardless of the values of variables and other conditions at runtime.
  • Dead code Elimination – Dead code elimination is a compiler optimization technique used to reduce program size by removing code which can never be executed (known as dead or unreachable code).
  • Debug Monitor – Debug monitor is a piece of software that has been designed specifically for use as a debugging tool for processors and chips. The debug monitor provides a set of primitive commands to view and modify memory locations and registers, create and remove breakpoints, and execute your program. A remote debugger with knowledge of the command format communicates with the debug monitor and combines these primitives to fulfill higher-level requests like program download and single-step.
  • Debugger – Debugger is a computer program that is used to debug other programs. Sometimes, a debugger may also include testing and optimizing functions. For example, when the program crashes, the debugger shows the position in the original code if it is a source-level debugger or symbolic debugger, commonly seen in integrated development environments. If it is a low-level debugger or a machine-language debugger, it shows the line in the disassembly.
  • Decompiler – A decompiler is a computer program that translates executable programs (the output from a compiler) into an equivalent (relatively) high level language (source code). By comparison, a disassembler translates an executable program into assembly language.
  • Deflate Algorithm – Deflate Algorithm is a lossless data compression algorithm that uses a combination of the LZ77 algorithm and Huffman coding. It was originally defined by Phil Katz for version 2 of his PKZIP archiving tool, and was later specified in RFC 1951. Deflate is used in gzip compressed files and PNG image files, in addition to the ZIP file format for which Katz originally designed it. Source code for Deflate compression and decompression can be found in zlib, the freely available, general-purpose compression library.
  • Defragment – Defragment is a process often required in a computer system to reorganize the disk by putting files into contiguous order. Because the operating system stores new data in whatever free space is available, data files become spread out across the disk as they are updated. Large files may be broken into many fragments, which will slow down the read/write of hard disks. A deframentation software rewrites all the files and stores them in adjacent sectors.
  • Dehardwarization – Dehardwarization refers to the trend in design of new computer hardware which tends to eliminate as many hardware components as possible and supplanting their functionality with software. An example of dehardwarized devices include softmodems and many AC’97 based audio cards.
  • Delphi – Delphi is a programming language and Integrated Development Environment (IDE). It is produced by Borland (known for a time as Inprise). The Delphi language, formerly known as Object Pascal (Pascal with object-oriented extensions) originally targeted only Microsoft Windows, but now builds native applications for Linux and the Microsoft .NET framework as well.
  • Demo: Demostration Version – Demo version, or demostration version, of software is a free or low-priced sample of a program. Demo programs are often with some features disabled or time limitations. It is intended to give the user enough of a taste to want to buy the full version program.
  • Demoware – Demoware is commercial software released by way of a free download with limitations, that is intended to give the user enough of a taste to want to buy the full version program. Demoware usually is limited in one (or more) of the following ways:
    • Remains functional for a set number of days from installation.
    • May only be launched for a set number of times.
    • Adds identifying marks to the output. Common with image and video editing demoware.
    • Is limited to a set number of “days of use” (i.e. only days you actually use the program count toward its trial limit)
    • Program execution terminates after a set time period (typically between 5 and 60 minutes).
    • Limited number of times that an important function may be used
  • Deprecated Software – Deprecated software, also called deprecation, refers to a software or a function inside a software package that is considered obsolete and on its way out, usually in favor of something better. The software or feature still works in the current version, although it may raise alert messages as warnings. These serve to alert the user to the fact that the feature may be removed in future releases, and slowly support for the program is phased out.
  • Der Dirigent – Der Dirigent is a free (licensed under the GNU General Public License), open source content management system written with PHP and MySQL. It offers full flexibility and extendability while featuring an accomplished set of ready-made interfaces, functions and modules. “Der Dirigent” has two operating modes: a so-called “Frontend” which presents “Der Dirigent” based website to its users and a “Backend” used by authors and site admins to manage content for the website. After the simple Installation, you need no ftp program. You can do everything in the browser, even the online editing of Cascading Style Sheet or JavaScript.
  • Design Compiler – Design Compiler is a product of Synopsys that compiles and optimises (in terms of silicon area and maximum clock frequency) high-level electronic circuit descriptions specified by restricted sub-languages of either Verilog or VHDL, into a gate-level netlist representation of a circuit. This procedure is an example of logic synthesis.
  • DeskScan – DeskScan is Hewlett-Packard software used in conjunction with a scanner. Using DeskScan, pictures or documents can be scanned into the computer (turned into digital files), edited, and placed in one of the right formats to be posted on a Web page or inserted into PowerPoint presentations.
  • DesktopBSD – DesktopBSD is a UNIX-like, desktop-oriented operating system based on FreeBSD. Its goal is to combine the stability of FreeBSD with the ease-of-use of K Desktop Environment (KDE), which is the default graphical user interface.
  • Dev-C++ – Dev-C++ is a free Integrated Development Environment(IDE) for programming use in C and its derivative, C++. Dev-C++ is bundled with the open source MinGW compiler utilizing gcc and its C++ counterpart, g++. Dev-C++ is distributed under the GNU General Public License. The Dev-C++ IDE is written in Delphi and/or its Linux port of Kylix.
  • Device Driver – Device driver, or a software driver, is a specific type of computer software, developed to allow interaction between the computer and hardware devices. Each device driver is typically a piece of operating system-specific as well as hardware-dependent software that makes it possible for application software to attach to, read and write data from, and change the behavior of the peripheral device.  Typically this constitutes an interface for communicating with the device, through the specific computer bus or communications subsystem that the hardware is connected to, providing commands to and/or receiving data from the device, and on the other end, the requisite interfaces to the operating system and software applications. Device driver enables another program, typically an operating system or applications software package or computer program running under the operating system kernel, to interact transparently with a hardware device, and usually provides the requisite interrupt handling necessary for any necessary asynchronous time-dependent hardware interfacing needs.
  • DGCA – In computing, DGCA is a freeware compression utility created in 2001 by Shin-ichi Tsuruta. DGCA is also a compressed archive format, the next generation of ‘GCA’. DGCA has higher compression than ZIP, Strong Password, Unicode Filename. However, DGCA is not a major compression format.
  • DIB: Device-Independent Bitmap – Device-Independent Bitmap (DIB), also kown as Bitmap (BMP), is the graphics format supported by Windows and some other OS. The graphic files in DIB format are generally end with a .bmp extension. DIB images can also be transferred in metafiles and the clipboard. It’s called device-independent because colors are represented in a format independent of the final output device. When a DIB image is output to a specific device, the device driver translates the DIB colors into actual colors that the output device can display. For example, to display bitmap graphs on screen, Device Dependent Bitmap (DDB) must be used.
  • Digial pen – Digital pen is an electronic writing instrument that allows the user to digitally capture a handwritten note or drawing. Typically, digital pen is connected with a computer using a Universal Serial Bus (USB) cradle to let the user upload the handwritten notes for processing and storage. The pen looks like a regular ball-point pen and can be used as such, but requires special digital paper if the user wishes to digitally capture what he has written.
  • Digital Paper – Digital paper is patterned paper used in conjunction with a digital pen to create handwritten digital documents. The proprietary printed dot pattern uniquely identifies the position coordinates on the paper. The digital pen uses this pattern to store the handwriting and upload it to a computer.
  • Digital Wallet – Digital wallet, also known as e-wallet, is a system designed for electronic commerce transactions over the Internet quickly and securely. A digital wallet can hold a user’s payment information encrypted, a digital certificate to identify the user, and shipping information to speed transactions. The consumer benefits because their information is encrypted and safe, no retyping required when conduct e-commerce online from different vendors, and payment in digital cash or check. Merchants benefit by receiving protection against fraud. Paypal is an example of such digital wallet system.
  • DirectX – DirectX, provided by Microsoft, is a suite of multimedia application programming interfaces (APIs) built into Microsoft Windows OS. DirectX provides a standard development platform for Windows-based PCs by enabling software developers to access specialized hardware features without having to write hardware-specific code. The DirectX APIs give multimedia applications access to the advanced features of high-performance hardware such as three-dimensional (3-D) graphics acceleration chips and sound cards. They control low-level functions, including two-dimensional (2-D) graphics acceleration; support for input devices such as joysticks, keyboards, and mice; and control of sound mixing and sound output. Because of DirectX, what you experience with your computer is better 3-D graphics and immersive music and audio effects.
  • Disassembly – Disassembly is the process of taking a binary program and deriving the source code from it.
  • Disassembler – A disassembler is a computer program which translates machine language to assembly language. It therefore performs the inverse operation to an assembler. However, the output of a disassembler is often designed for human-readability rather than suitability for input to an assembler (called disassembly). By comparison, a decompiler translates machine language into a high level language.
  • Distcc – Distcc is a computer program that distributes processes of compiling C and its derivatives like C++ and Objective C source code over a computer network. With the right configuration, the program can dramatically reduce compilation time.
  • Distiller – Distiller is a software program from Adobe which converts postscript files to portable document format (.pdf) files. Postscript files have special coding which instruct the printer how to print the document.
  • Distributed Computing – Distributed computing may mean different things in different situation. It may refer to the use of multiple computers in an organization rather than one centralized system. This use of the term was popular in the 1970s. It may also mean the use of multiple computers networked throughout a wide geographical area to solve a single problem.
  • Distributed Database – A distributed database is a database that is under the control of a central database management system (DBMS) in which storage devices are not all attached to a common CPU. It may be stored in multiple computers located in the same physical location, or may be dispersed over a network of interconnected computers. Because the database is distributed, different users can access it without interfering with one another. However, the DBMS must periodically synchronize the scattered databases to make sure that they all have consistent data.
  • Distribution Software – Distribution software is a software system that helps companies to manage internal and external resources. Distribution software manages everything from order processing and inventory control to accounting, purchasing and customer service, supply chain management, sales, CRM, inventory, warehouse and finance management.
  • DJGPP – DJGPP is a 32-bit C/C++ development system for 386 PCs and PC compatibles running MS-DOS, developed by DJ Delorie in 1989. It is a software port of the popular gcc compiler, as well as many other GNU development utilities, to DOS Protected Mode Interface(DPMI).
  • DKBTrace – DKBTrace was a graphical ray tracing program which was the forerunner of POV-Ray. It had no GUI and ran via the command line. It featured quadric shapes (spheres, ellipsoids, planes, etc), constructive solid geometry (intersection, difference, union), and procedural textures like wood and marble. It was written for UNIX by David K. Buck (1986) and Aaron Collins. The last version (DKBTrace 2.12) was built in 1989.
  • DLL Hell – DLL hell is a phrase used to describe the complications which arise when working with dynamic link libraries (DLLs). DLL Hell encompasses the difficulties of managing dynamic-link libraries (DLLs) in Microsoft Windows operating systems, such as conflicts between DLL versions, difficulty in obtaining required DLLs, and having many unnecessary DLL copies. DLL Hell is an example of a latent operating system design flaw — that is, problems occur in well-written programs because of bad programming practice or a bug in poorly-written software that is tolerated by the operating system. The paradigm of a latent operating system flaw is time slice multiplexing in Microsoft operating systems pre-dating OS2 and Windows NT. With time slicing, a rogue or buggy program can effectively disable the entire computer, forcing the user to hard boot the machine.
  • DLL: Dynamic-Link Library – Dynamic-link library (DLL) is Microsoft’s implementation of the shared library concept in the Microsoft Windows operating systems. These libraries usually have the file extension DLL, OCX (for libraries containing ActiveX controls), or DRV (for legacy system drivers). The file formats for DLLs are the same as for Windows EXE files that is, Portable Executable (PE) for 32-bit Windows, and New Executable (NE) for 16-bit Windows. DLLs can contain code, data, and resources, in any combination. DLL is files containing groups of often-used computer code which can be shared amongst many programs. This has several advantages: programmers who use library code do not need to keep reinventing the wheel; programs which invoke library code do not each need to include a copy of that code, making their files smaller; updates to library code can be applied in one place, rather than in many programs.
  • DM: Data Mart – Data mart (DM) is a specialized version of a data warehouse (DW). Whereas a data warehouse combines databases across an entire enterprise, data marts are usually smaller and focus on a particular subject or department. Data marts contain a snapshot of operational data that helps business people to strategize, based on analyses of past trends and experiences. Since a data mart configuration emphasizes easy access to relevant information, the star schema or dimensional model is a fairly popular design choice, as it enables a relational database to emulate the analytical functionality of a multi-dimensional database.
  • DM: Data Mining – Data mining (DM), also known as Knowledge-Discovery in Databases (KDD) or Knowledge-Discovery and Data Mining (KDD), is the process of automatically searching large volumes of data for patterns. Data mining uses automated data analysis techniques to uncover previously undetected relationships among data items. Data mining often involves the analysis of data stored in a data warehouse. Three of the major data mining techniques are regression, classification and clustering.
  • DML: Data Manipulation Language – Data Manipulation Language (DML) is a family of computer languages used by computer programs or database users to retrieve, insert, delete and update data in a database. The currently most popular Data manipulation language is that of SQL, which is used to retrieve and manipulate data in a Relational database. Other forms of DML are those used by IMS/DL1, CODASYL databases (such as IDMS), and others.
  • DMX: Data Mining Extensions – Data Mining Extensions (DMX) is a query language for Data Mining Models, much like that SQL is a query language for relational databases and MDX is a query language for OLAP databases. DMX syntax is more similar to SQL than MDX.
  • Doc-O-Matic – Doc-O-Matic is a commercial automatic documentation generator that creates fully cross linked documentation systems, including both Source Code Documentation, Online Help and User Manuals in PDF, browser-based Help, HTML Help, MS Help 2, Windows Help, RTF and XML. Doc-O-Matic supports all major project file formats as well as the following programming languages: C/C++, C++/CLI, C#, Delphi, Java, IDL, VB.NET, JavaScript, MATLAB, ASP.NET, JSP.
  • Document! X – Document! X is a documentation generator which automates technical documentation production for VB6/VBA source code, C#/VB.NET/C++ or other .NET language assemblies, databases, COM components, type libraries and XSD schemas. Document! X consists of an authoring and documentation built environment (including HTML based Visual Authoring tools) as well as Visual Comment Editor Add-Ins for Visual Basic, VBA and Visual Studio .NET.
  • DOMi: DOM Inspector – DOM Inspector (DOMi) is one of the web developer tools included in Mozilla Application Suite and Mozilla Firefox. The main function of the DOM Inspector is to inspect the Document Object Model tree of HTML and XML-based documents.
  • Donateware – Donateware (or donationware) is freely distribution software. But the user must donate to a charitable cause in order to “register” the software. Sometimes the author of the program stipulates which charity the user must donate to, sometimes they just suggest one, and sometimes the author leaves the choice up to the user. Normally the user does not need to contact the author with any information in order to “register” their program – it is implicit with the donation (registering does not “unlock” any extra features).
  • DOOM – DOOM is a 1993 computer game by id Software that is among the landmark titles in the first-person shooter genre. It is widely recognized for its pioneering use of immersive 3D graphics, networked multiplayer gaming, and the support for players to create custom expansions (WADs). Distributed as shareware, Doom was downloaded by an estimated 10 million people within two years, popularizing the mode of gameplay and spawning a gaming subculture; as a sign of its impact on the industry, games from the mid-1990s boom of first-person shooters are often known simply as “Doom clones”. Its graphic and interactive violence has also made Doom the subject of much controversy reaching outside the gaming world.
  • Doom WAD – Doom WADs (Where’s All the Data?) are mods for the computer game Doom or its sequel Doom II. Immediately after its release in 1993, Doom attracted a sizeable following of players who created their own WAD files packages containing levels, graphics and other game data and played a vital part in spawning the mod-making culture which is now commonplace for first-person shooters. Literally thousands of WADs, ranging from single custom levels to full original games, have been created for Doom; most of these can be downloaded for free over the Internet. Several WADs have also been released commercially, and for some people the WAD-making hobby became a gateway to a professional career as a level designer.
  • DOS: Disk Operating System – Disk Operating System (DOS) commonly refers to the family of closely related operating systems which dominated the IBM PC compatible market between 1981 and 2000: PC-DOS, MS-DOS, FreeDOS, DR-DOS, Novell-DOS, OpenDOS, PTS-DOS, ROM-DOS and several others. Of these, MS-DOS from Microsoft was the most widely used. These operating systems ran on IBM PC type hardware using the Intel x86 CPUs or their compatible cousins from other makers. Such a system must handle physical disk I/O, the mapping of file names to disk addresses and protection of files from unauthorised access (in a multi-user system). DOS should present a uniform interface to different storage device such as floppy disks, hard disks and magnetic tape drives. It may also provide some kind of locking to prevent unintentional simultaneous access by two processes to the same file (or record).
  • DotGNU – DotGNU is a GNU-sponsored project for devising web services, software componentry and the like. It is compatible with Microsoft .NET and similar to the Mono project from Novell.The DotGNU developers say that while they realize that the Microsoft .NET platform is a powerful concept, its commercialization by a single company may be threatening the free software movement. There are nonetheless a lot of open source projects being made in C#.
  • DotNetNuke – DotNetNuke is a free, open source, extensible content management system ideal for creating and maintaining professional websites. Originally based on the iBuySpy code demo released by Microsoft, the system is now in its 3rd edition. You customize the look and feel of your site by creating one or more Skins that require little more than HTML knowledge to create. Like many other Content Management Systems, the power of DotNetNuke lies not so much in its built-in features but its easy extensibility.
  • Doxygen – Doxygen is a Documentation generator for C++, C, Java, IDL (Corba and Microsoft flavors) and to some extent Objective-C, PHP, C# and D. Being highly portable, it runs on most Unix systems as well as on Windows and Mac OS X. Most of the Doxygen code was written by Dimitri van Heesch.
  • Drawing Program – Drawing program allows a user to draw freehand and create complex graphics. It may include features such as special fonts, clip art, or painting facilities that allow a user to simulate on the computer the drawing characteristics of specific real-world implements such as charcoal, watercolours, or pastels. For example, Corel Draw and Adobe Illustrator are drawing programs.
  • DRDA: Distributed Relational Database Architecture – Distributed Relational Database Architecture is an IBM proprietary architecture for relational database.
  • Dreamweaver – Dreamweaver is an HTML editor developed by Macromedia, now part of Adobe Systems. It was originally designed for professional web designers and offers an editing system that combines both the productivity of WYSIWYG design with the control of HTML code editing mode. This combination was quite unique in late 1990s and helped Dreamweaver to a widespread adoption. It is currently available for Mac and Windows and holds about 80% of the professional HTML editor market.
  • Dribbleware – Dribbleware refers to the software which is prematurely released with frequent update, fixes, and patches after release. With the intense market pressure to release software products as soon as possible, and with the increased ease of updating software via Internet downloads, dribbleware is becoming the norm rather than the exception.
  • Driver Wrapper – A driver wrapper is software that functions as an adapter between an operating system and a driver, such as a device driver, that was not designed for that operating system. It can enable the operating system to use technologies for which no native implementation exists.
  • Drupal – Drupal is a content management framework, content management system and blogging engine which was originally written by Dries Buytaert as a bulletin board system. Drupal has become much more, thanks to its flexible architecture, and is the software used to power Debian Planet, Terminus1525, Wikinerds Portal, Spread Firefox, and KernelTrap, among others. Drupal is written in PHP using strict coding standards.
  • DSI: Delivered Source Instruction – Delivered source instruction (DSI) refers to one line of new source code developed for software. DSI is used to estimate software cost. Typically expressed in thousands of lines of code (e.g., 5,000 DSI or 5KDSI). DSI is the primary input to many tools for estimating software cost. The term “delivered” is generally meant to exclude non-delivered support software such as test drivers. However, if these are developed with the same care as delivered software, with their own reviews, test plans, documentation, etc., then they should be counted. The “source instructions” include all program instructions created by project personnel and processed into machine code by some combination of preprocessors, compilers, and assemblers. It excludes comments and unmodified utility software. It includes job control language, format statements, and data declarations.
  • DSL: Domain-Specific Language – Domain-specific language(DSL), also known as domain-specific programming language, is a programming language designed to be useful for a specific set of tasks. Examples of DSLs include spreadsheet macros, YACC for parsing and compilers, Csound, a language used to create audio files, and GraphViz, a language used to define directed graphs, and create a visual representation of that graph. DSLs have also been called by various names: Little languages, Macros, Application languages, Very high level languages, etc.
  • DSSI: Disposable Soft Synth Interface – Disposable Soft Synth Interface (DSSI) is a virtual instrument (software synthesizer) plugin architecture for use by music sequencer applications. It was designed for applications running under Linux, although there is nothing specific to Linux in the interface itself. It is sometimes described as “LADSPA for instruments”. LADSPA is the more general plugin architecture for filters, reverbs and other sound processing software tools, whereas DSSI is specifically for instruments. DSSI, however, uses LADSPA as an event transport mechanism and as such extends LADSPA.
  • DW: Data Warehouse – Data warehouse (DW) is a computer database that collects, integrates and stores an organization’s data with the aim of producing accurate and timely management information and supporting data analysis. A DW typically has the following characters: 1) SUBJECT oriented, meaning that the data in the database is organised so that all the data elements relating to the same real-world event or object are linked together; 2) Time variant, meaning that the changes to the data in the database are tracked and recorded so that reports can be produced showing changes over time; 3) Non-volatile, meaning that data in the database is never over-written or deleted, but retained for future reporting; and, 4) Integrated, meaning that the database contains data from most or all of an organisation’s operational applications, and that this data is made consistent.

E

  • EBNF: Extended Backus Naur form – Extended BackusNaur form (EBNF) is an extension and simplification of the original Backus–Naur form (BNF) metasyntax notation. Originally developed by Niklaus Wirth, the most commonly used variants of EBNF are currently defined by standards, most notably ISO-14977.
  • ECM: Enterprise Content Management – Enterprise Content Management (ECM) is any of the strategies and technologies employed in the information technology industry for managing the capture, storage, security, revision control, retrieval, distribution, preservation and destruction of documents and content. ECM especially concerns content imported into or generated from within an organization in the course of its operation, and includes the control of access to this content from outside of the organization’s processes.
  • Editor – Editor in computing refers to an application program that enables you to create and edit some types of files. There are many different types of editors, such as: text editor, an application to edit plain text; hex editor, an application to edit binary data; HTML editor, an application to edit webpages; XML editor, an application to edit XML data; digital audio editor, an application to edit audio data; raster graphics editor; vector graphics editor; level editor, an application to edit levels of computer games; etc.
  • EFence: Electric Fence – Electric Fence (eFence) is a memory debugger written by Bruce Perens. It consists of a library which a programmer can link into his or her code to override the standard library memory management functions. eFence triggers a program crash when the memory error occurs, so a debugger can be used to inspect the code that caused the error.
  • EFSM: Extended Finite State Machine Model – Extended Finite State Machine Model (EFSM) is an enhanced model based on the traditional finite state machine (FSM), which is a model of behavior composed of states, transitions and actions. In a conventional FSM, the transition is associated with a set of input Boolean conditions & a set of output Boolean functions. In an EFSM model, the transition can be expressed by an if statement. If trigger conditions are all satisfied, the transition is fired, bringing the machine from the current state to the next state and performing the specified data operations. The models are used widely in modeling reactive systems, linguistics, computer science, philosophy, biology, mathematics, and logic.
  • EGCS: Experimental/Enhanced GNU Compiler System – Experimental/Enhanced GNU Compiler System(EGCS) was a compiler system which forked from the GNU Compiler System (GCC) in 1997 and was re-merged in April 1999. By 1991, GCC 1.x had reached a point of stability, but architectural limitations prevented many desired improvements, so the Free Software Foundation started to work on GCC 2.x.
  • EIAS: Electric Image Animation System – The Electric Image Animation System (EIAS) is a 3D computer graphics package published by EI Technology Group. It currently runs on the Mac OS X, Windows, and Solaris platforms. EIAS’s primary competitors in the integrated 3D package space are Autodesk with Maya and 3D Studio Max, Avid with Softimage|XSI, Maxon with Cinema 4D, and Newtek with LightWave 3D.
  • Emacs – Emacs is a class of text editors, possessing an extensive set of features, that are popular with computer programmers and other technically proficient computer users. Many versions of Emacs have appeared since 1975 when the original version was introduced, but nowadays there are two that are commonly used: GNU Emacs, started by Richard Stallman in 1984 and still maintained by him, and XEmacs, a fork of GNU Emacs which was started in 1991 and has remained mostly compatible. Both use a powerful extension language, Emacs Lisp, that allows them to handle tasks ranging from writing and compiling computer programs to browsing the web.
  • Emacs LISP – Emacs LISP is a dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors (which will be collectively referred to as Emacs in this article.) It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C. Users of Emacs commonly write Emacs Lisp code to customize and extend Emacs.
  • Emulation – Emulation refers to the capabilities of a program or device to imitate another program or device. Emulation attempts to model, to various degrees, the state of the device being emulated. Emulation tricks other systems into believing that the device is really some other emulated device. A example of emulation is to mimic the experience of running arcade games or console games on personal computers. In a networked environment, a computer acts as if it is another kind of computer or terminal. For example, a PC user opens a remote terminal session to a Unix, so it may run a program that emulates an Unix terminal.
  • Emulation Mode – Emulation Mode is an operational state of a computer when it is running a foreign program under emulation. For example, a PC user opens a remote terminal session to a Unix, and it may run a program that emulates an Unix terminal.
  • Emulator – Emulator is a software or hardware device with emulation program to imitate another program or device. A software emulator allows computer programs to run on a platform (computer architecture and/or operating system) other than the one for which they were originally written. A hardware emulator is an emulator which takes the form of a hardware device. Examples include printer emulators inside the ROM of the printer, and FPGA-based emulators.
  • Enterprise Software – Enterprise Software is a type of software that solves an enterprise wide problem (rather than a departmental problem) and usually enterprise software is written using Enterprise Software Architecture. Due to the cost of building what is often proprietary software only large organizations attempt to build software that models the entire business enterprise and is the core system of governing the enterprise and the core of business communications within the enterprise. Enterprise software is often categorized by the business function that it automates – such as accounting software, human resource management or sales force automation software. It also varies by industry verticals due to common business processes within a specific industry. There are enterprise systems devised for health care, for example, or for manufacturing enterprises.
  • Enterprise Software Architecture – Enterprise Software Architecture, also known as Enterprise Architecture, is the practice of applying a comprehensive and rigorous method for describing a current and/or future structure and behaviour for an organization’s processes, information systems, personnel and organizational sub-units, so that they align with the organization’s core goals and strategic direction. Although often associated strictly with information technology, it relates more broadly to the practice of business optimization in that it addresses business architecture, performance management and process architecture as well.
  • Entropy – Entropy, a concept in physics, is a measrue of disorder or randomness of a system. In data compression, it is a measure of the amount of non-redundant and non-compressible data in an object (the amount that is not similar). In encryption, it is the amount of disorder or randomness that is added. In software, it is the disorder and jumble of its logic, which occurs after the program has been modified over and over.
  • ESC/Java: Extended Static Checker for Java – Extended Static Checker for Java (ESC/Java) is a Compaq (now part of HP) programming tool that attempts to find common run-time errors in Java programs by static analysis of the program text. Users can control the amount and kinds of checking by annotating their programs with specially formatted comments or pragmas.
  • Etnus TotalView – Etnus TotalView is a debugger for Unix-like and Mac OS X systems and supports C/C++ and Fortran. It allows process control down to the single thread, the ability to look at data for a single thread or all threads at the same time, and the ability to synchronize threads through breakpoints. TotalView integrates memory leak detection and other heap memory debugging features. Data analysis features help find anomalies and problems in the target program’s data, and the combination of visualization and evaluation points let the user watch data change as the program executes.
  • Evaluation Strategy – An evaluation strategy (or reduction strategy) for a programming language is a set of (usually deterministic) rules for defining the evaluation of expressions under β-reduction. Emphasis is typically placed on functions or operators — an evaluation strategy defines when and in what order the arguments to a function are evaluated, when they are substituted into the function, and what form that substitution takes. A language may combine several evaluation strategies; for example, C++ combines call-by-value with call-by-reference. Most languages that are predominantly strict use some form of non-strict evaluation for boolean expressions and if-statements.
  • Exec Shield – Exec Shield is a security patch for the Linux kernel that adds an NX bit to x86 CPUs. It was developed by Ingo Molnar of Red Hat, and is used as a part of Fedora Core 1, 2 and 3. Exec Shield attempts to flag data memory as non-executable and program memory as non-writeable. This suppresses many security exploits, such as those stemming from buffer overflows and other techniques relying on overwriting data and inserting code into those structures. Exec Shield also supplies some address space layout randomization for the mmap() and heap base.
  • Extended ASCII – Extended ASCII, also known as high ASCII, is a set of codes using 8 bits for each character, instead of 7 bits as the basic ASCII set. The basic ASCII set provides it a total of 128 unique symbols. The extended ASCII character set gives it an additional 128 characters. The extra characters represent characters from foreign languages and special symbols for drawing pictures.
  • EXtensible Markup Language (XML) – Extensible Markup Language (XML), a subset of SGML, defines a syntax that lets you create markup languages to specify information structures. Information structures define the type of information, for example, subscriber name or address, not how the information looks (bold, italic, and so on). External processes can manipulate these information structures and publish them in a variety of formats. Text markup language designed to enable the use of SGML on the World Wide Web. XML allows you to define your own customized markup language. XML tags are not predefined. You must define your own tags. XML uses a Document Type Definition (DTD) or an XML Schema to describe the data. XML is not a replacement for HTML. Actually, XML and HTML are complimentary to each other.
  • External Command – In DOS and OS/2, external command is a function performed by a separate utility program that accompanies the operating system. Contrast with internal command.
  • Extreme Programming – Extreme Programming (XP) is a software engineering methodology developed by Kent Beck, the most prominent of several agile software development methodologies. It prescribes a set of day-to-day practices for developers and managers; the practices are meant to embody and encourage particular values. Extreme Programming is effectively used with small teams of developers who need to develop software quickly in an environment of rapidly-changing requirements.
  • EZ Publish – EZ publish is a popular enterprise open source (under the GNU GPL license) content management system (CMS) and development framework, developed, distributed, and supported by eZ systems with input and help from an active user and developer community. While the development has not forked, there also exists a modified version called “edition pieserver”.

F

  • FAB: FORTRAN Assembly Program – FORTRAN Assembly Program (FAP) was a macro FORTRAN assembler for the IBM 709, 7090, and 7094 computers of the 1950s and 60s.
  • FASM: Flat Assembler – Flat Assembler(FASM) is a free, multiple-pass, Intel-style assembler supporting the IA-32 and x86-64 architectures. FASM is written in assembly language, comes with full source. The project was started in 1999 by Tomasz Grysztar.  It is noted for its fast speed, size optimizations, portability, powerful macro capabilities, and online forum community. However, it uses (almost) no command-line options. Binaries/sources are available for Linux, Windows (w/ IDE), DOS, OpenBSD etc., MenuetOS, OctaOS, and Dex4u. FASM contains bindings to the Windows GUI and OpenGL. All versions of FASM can directly output any of the following: flat binary, ELF or COFF (classic or MS) objects, or executables in either MZ, ELF or PE format. An unofficial port targeting the ARM architecture (FASMARM) exists.
  • FAST: Federation Against Software Theft – Federation Against Software Theft(FAST) is a non-profit organisation, formed in 1984 by the software industry with the aim of eradicating software theft in the UK. In addition to prosecuting organisations and individuals for software theft, FAST set up a campaign of public education and awareness to ensure that users of commercial software understand the effects of software theft. FAST gives a member organisation, which has signed a Code of Ethics and is committed to the carrying out of a regular software audit, a period of grace before bringing action if there is evidence of irregularities by the member organisation.
  • FastCAD – FastCAD is a 2D and 3D Computer Aided Design (CAD) program for Windows, which uses FCW as the file extension. It includes 3d modeling and rendering, symbol definition editing, and advanced capabilities for working with multiple drawings and overlays. FastCAD is written in assembler and will run well on basic hardware.
  • FAT: File Allocation Table – File Allocation Table (FAT) is file system developed by Microsoft for MS-DOS and is the primary file system for consumer versions of Microsoft Windows up to Windows Me. The FAT file system is an ideal format for floppy disks and solid-state memory cards, and a convenient way of sharing data between disparate operating systems installed on the same computer (a dual boot environment). FAT is replaced by New Technology File System (NTFS) since the release of Windows NT.
  • Fat Binary – A fat binary, also known as multiarchitecture binary, is a computer program that is native to multiple instruction set architectures (ISA) and thus can be run on multiple processor types. The usual method of implementation is to include a version of the machine code for each ISA, resulting in a file n times larger than a normal one-architecture binary.
  • Fetch-and-add CPU instruction – Fetch-and-add CPU instruction is a special instruction that automatically modifies the contents of a memory location. It is used to implement Mutual exclusion and concurrent algorithms in multiprocessor systems.
  • Fibonacci Number Program – Fibonacci number program is a popular program in many beginning computer science courses, introducing the concept of recursion by calculating and printing the Fibonacci numbers. In general, however, a recursive algorithm to compute Fibonacci numbers is extremely inefficient when compared to other algorithms, such as iterative or matrix equation algorithms.
  • Fibonacci Numbers – In mathematics, the Fibonacci numbers is a sequence of numbers defined recursively by the Fibonacci rule: after two starting values, each number is the sum of the two numbers before it. For example, the first Fibonacci numbers for n = 0, 1, 2, 3, are – 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946
  • Fifth-Generation Programming Language – Fifth-generation programming language (5GL) is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer. Most constraint-based and logic programming languages and some declarative languages are fifth-generation languages. Fifth-generation languages are used mainly in artificial intelligence research. Prolog, OPS5, and Mercury are the best known fifth-generation languages.
  • FileMaker Pro – FileMaker Pro is a desktop-based relational database management system from FileMaker Inc., similar to Microsoft Access. FileMaker was one of a handful of database applications released on the Apple Macintosh in the 1980s.
  • Filename Extension – Filename extension is a portion of a filename, following the point after the individual file name. Filename extenson indicates the type of data stored in the file. Many operating systems use filename extensions, e.g. Unix,MS-DOS. Examples include “c” for C source code, “doc” for Miscrosft word, “ps” for PostScript, “txt” for text fle, etc.
  • Fiora – Fiora was a Computer role-playing game originally inspired by various bots floating around IRC’s EsperNet servers. It took many elements from Tactics Ogre, and derived its turn system from different aspects of James “Iyouboushi’s” Kaiou bot and Craig’s Future bot.
  • FireFox – Firefox, also known as Mozilla Firefox, is a free, open source, cross-platform, graphical web browser developed by the Mozilla Corporation and hundreds of volunteers. Firefox includes an integrated pop-up blocker, tabbed browsing, live bookmarks, support for open standards, and an extension mechanism for adding functionality. Although other browsers have some of these features, Firefox became the first such browser to include them all and achieve wide adoption.
  • Firmware – Firmware is software that is embedded in a hardware device. It is often provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user. The firmware typically implements a portion of the network protocols, security mechanisms and administrative capabilities of the hardware device.
  • First Generation Programming Language – First-generation programming language(1GL) is a machine-level programming language, which was written in 1s and 0s. There is no compiler or translator required and it can be understood and used by a CPU directly. The code using 1GL can run very fast and efficiently since it is directly executed by the CPU. However, machine language is somewhat more difficult to learn than higher generational programming languages, and it is far more difficult to edit if errors occur. Furthermore code portability is significantly reduced in the 1GL based code. First-generation programming language is mainly used now on very ancient computers. Machine level programming still finds a use in several areas of modern programming with the help of native-code compilers which creates machine language, usually from a higher-level language.
  • FLAC: Free Lossless Audio Codec – Free Lossless Audio Codec (FLAC) is a popular free audio compression codec that is lossless. Unlike lossy codecs such as MP3 and AAC, it does not remove any information from the audio stream and is suitable both for everyday playback and for archiving audio collections. “Free” means that the specification of the stream format can be implemented by anyone without prior permission, and that neither the FLAC format nor any of the implemented encoding/decoding methods is covered by any patent. The sources for libFLAC and libFLAC++ are available under Xiph.org’s BSD license and the sources for flac, metaflac, and the plugins are available under the GPL.
  • Flex Lexical Analyser Generator – The Flex lexical analyser generator (Flex) is a free software alternative to Lex. Flex is a tool for generating scanners: programs which recognized lexical patterns in text. Flex reads the given input files, or its standard input if no file names are given, for a description of a scanner to generate.Â
  • FMV: Full Motion Video – Full motion video (FMV) is a popular term for pre-recorded TV-quality movie or animation in a video game. FMV is simply a playback of something that was previously recorded. With modern computer hardware, games are rendered at much higher resolutions than typical FMVs, resulting in FMVs being easily spottable as “lower quality” than the game itself. In this case, while a pre-rendered FMV may use more advanced effects than possible in-game, it is considered lower quality due to being seen at a lower resolution.
  • FOP: Formatting Objects Processor – Formatting Objects Processor(FOP) is an XSL-FO processor written in Java, which provides the feature to convert XSL-FO files to PDF or direct-printable-files. FOP was originally developed by James Tauber who donated it to the Apache Software Foundation in 1999. It is part of the Apache XML project.
  • FORTRAN – FORTRAN is the oldest high-level programming language, designed by John Backus for IBM in the late 1950s. FORTRAN is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing. It is still in use today, particularly for scientific applications that require extensive mathematical computations. The two most common versions of FORTRAN are FORTRAN IV and FORTRAN 77. A new ISO and ANSI standard for FORTRAN, called FORTRAN-90, was developed in the early 90s.
  • Forward Compatible – Forward compatible, also known as upward compatible, refers to software that runs not only on the computer for which it was designed, but also on newer and more powerful models. Forward compatibility is important because it means you can move to a newer, larger, and more sophisticated computer without converting your data. An example of upward/forward compatibility is the specification that a web browser ignore HTML tags not recognised. Ignoring data or application instructions not recognized is the typical behavior of forward compatible systems.
  • Fourier Transform – The Fourier Transform, named after Joseph Fourier, is an integral transform that re-expresses a function in terms of sinusoidal basis functions, i.e. as a sum or integral of sinusoidal functions multiplied by some coefficients (“amplitudes”). Fourier Transform technique is used to evaluate the importance of various frequency cycles in a time series pattern.
  • Fourth-Generation Language – A fourth-generation programming language (4GL) is a programming language closer to human languages than typical high-level programming languages. Such languages arose after the introduction of modern, block-structured third-generation programming languages, which improved the process of software development. Most 4GLs are used to access databases. For example, a typical 4GL command is FIND ALL RECORDS WHERE COMPANY IS “JAVVIN”.
  • FPA: Function Point Analysis – Function point analysis (FPA) is a method used to gauge the size and complexity of computer software, employing a function point as a unit of measure. Function points are a unit measure for software size, much like an hour is to measure time.
  • Free Software – Free software, according to the definition of the Free Software Foundation (FSF), refers to the software that everyone is free to copy, redistribute and modify. That implies that it must be available as source code. It does not imply that it is free of charge, so anyone can sell free software so long as they don’t impose any new restrictions on its redistribution or use.
  • Free Software License – Free software license refers to a license which grants permissions to the recipient to remove any ownership issues which would otherwise prevent the software from being free software. With free software license, recipients of the software is granted the freedom to modify and redistribute the software by the copyright holder.
  • FreeBASIC – FreeBASIC is an open source (under GPL) 32-bit, BASIC programming language compiler. It is designed to be syntax compatible with QuickBASIC, while expanding on the language and capabilities. It compiles for DOS, Microsoft Windows and Linux, and is being ported to other platforms.
  • FreeBSD – FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4.4BSD operating systems. It runs on processors compatible with the Intel x86 family, as well as on many other processors such as AMD64 and PowerPC processors. It also runs on the PC-98 architecture. Support for the ARM and MIPS architectures is currently in development.
  • FreeDoom – FreeDoom is a Doom WAD file intended to be used instead of the copyrighted file from the original Doom and Doom II. The idea is that since the source to Doom is released as open source you can combine the free game engine with the free WAD to create an entirely free game. This also makes it possible to use all user-made WADs that require the original (and copyrighted) WAD by replacing it.
  • FreeSBIE – FreeSBIE is a LiveCD (LiveDistro) type of operating system that is able to load directly from a bootable CD without any installation process and without any hard disk. It is based on the FreeBSD operating system.
  • FreeTDS – FreeTDS is a free open source programming library, that implements the Tabular Data Stream protocol. It can be used in place of Sybase’s db-lib or ct-lib libraries. It also includes an ODBC library. It allows many open source applications such as Perl and PHP (or your own C or C++ program) to connect to Sybase ASE or Microsoft SQL Server.
  • FrontPage – FrontPage is Microsoft HTML editor to be used to create large complex Web sites. FrontPage is a WYSIWYG (what-you-see-is-what-you-get) editor, meaning that you can create the Web page exactly as you want it to look on the screen, and the program adds the HTML source code necessary to make sure that the page looks right in a Web browser.
  • FSF: Free Software Foundation – Free Software Foundation(FSF) is an organisation devoted to the creation and dissemination of free software, i.e. software that is free from licensing fees or restrictions on use. The Foundation’s main work is supporting the GNU project with a basic belief that information is community property and all software source should be shared.
  • FSM: Finite State Machine – A finite state machine (FSM) or finite automaton is a model of behavior composed of states, transitions and actions. A state stores information about the past, i.e. it reflects the input changes from the system start to the present moment. A transition indicates a state change and is described by a condition that would need to be fulfilled to enable the transition. An action is a description of an activity that is to be performed at a given moment. In addition to their use in modeling reactive systems, finite state automata are significant in many different areas, including linguistics, computer science, philosophy, biology, mathematics, and logic.
  • FSML: Financial Services Markup Language – Financial Services Markup Language(FSML), a data description language based on the metalanguage Standard Generalized Markup Language (SGML), was developed to create financial documents for delivery over the Internet, including eCheck and their associated documentation. FSML is a set of markup symbols or codes that allows its users to define the individual items that compose a document, assemble items into larger document parts that take on a contextual meaning, and enable the screening of a document for digital signatures, endorsement, additions, or deletions.
  • FTP Client – FTP client is a software installed on a workstation which uses the FTP protocol to connect to an FTP server to transfer files. Basic FTP clients are part of operating systems, including Windows, DOS, Linux and Unix. However, many enhanced clients are available typically as shareware/freeware for Windows and as free software for Unix-like systems. Many web browsers have built-in FTP clients as well. Commercial FTP clients also exist with high performance or advanced features.
  • Functional Programming – Functional programming is a programming paradigm that conceives computation as the evaluation of mathematical functions and avoids state and mutable data. Functional programming emphasizes the application of functions, in contrast to imperative programming, which emphasizes changes in state and the execution of sequential commands. Functional programming is defined more by a set of common concerns and themes than any list of distinctions from other paradigms. Often considered important are higher-order and first-class functions, closures, and recursion. Other common features of functional programming languages are continuations, Hindley-Milner type inference systems, non-strict evaluation (including, but not limited to, “laziness”), and monads.
  • Functional Programming Language – Functional programming languages, based on the functional programming paradigm, is a type of programming languages that consist of a set of (possibly recursive) function definitions and an expression whose value is output as the program’s result. Functional programing languages are one kind of declarative language. They are based on the typed lambda calculus with constants. There are no side-effects to expression evaluation so an expression. Furthermore, an expression can always be replaced by its value without changing the overall result (referential transparency). Functional programming languages have largely been emphasized in academia rather than in commercial software development. Notable exceptions are Erlang (highly-concurrent telecom applications), J and K (financial analysis), and domain-specific programming languages like XSLT. Important influences on functional programming have been the lambda calculus, the APL programming language, the Lisp programming language, and more recently the Haskell programming language.

G

  • GA: Global Arrays – The Global Arrays (GA) is a public domain toolkit that provides an efficient and portable shared-memory programming interface for distributed-memory computers. Unlike other shared-memory environments, the GA model exposes to the programmer the non-uniform memory access (NUMA) characteristics of the high performance computers and acknowledges that access to a remote portion of the shared data is slower than to the local portion. The locality information for the shared data is available, and a direct access to the local portions of shared data is provided. Global Arrays have been designed to complement rather than substitute for the message-passing programming model. The programmer is free to use both the shared-memory and message-passing paradigms in the same program, and to take advantage of existing message-passing software libraries. Global Arrays are compatible with the Message Passing Interface (MPI).
  • GAMS: General Algebraic Modeling System – The General Algebraic Modeling System (GAMS) is a high-level modeling system for mathematical programming problems. The program itself consists of a language compiler and a group of integrated solvers. Thus, GAMS is not a solver itself.
  • Gas: GNU Assembler – GNU assembler (Gas) is the default GNU Compiler Collection (GCC) back-end and is used to compile Linux and other operating systems such as the GNU operating system. It is a part of the GNU Binutils package. It runs and assembles on and for a number of different architectures. Gas uses the AT&T assembler syntax, instead of the Intel syntax used in many other assemblers.
  • GCA – In computing, GCA is a freeware compression utility created in 2000 by Shin-ichi Tsuruta. GCA is a compressed archive format. It has higher compression capabilities than ZIP, especially with binary files. The next generation of GCA is ‘DGCA’.
  • GCC: GNU Compiler Collection – The GNU Compiler Collection (GCC) is a set of programming language compilers produced by the GNU Project. It is free software distributed by the Free Software Foundation (FSF) under the GNU GPL and GNU LGPL, and is a key component of the GNU toolchain. It is the standard compiler for the free software Unix-like operating systems, and several proprietary operating systems, notably Apple Mac OS X. Originally named the GNU C Compiler, because it only handled the C programming language, GCC was later extended to compile C++, Objective-C, Java, Fortran, and Ada among others.
  • GCJ: GNU Compiler for Java – The GNU Compiler for Java (GCJ) is a compiler for the Java programming language that is part of the GNU Compiler Collection (GCC). It can compile Java source code to either Java Virtual Machine bytecode, or directly to machine code for any of a number of CPU architectures. It can also compile class files containing bytecode or entire Java archives (JARs) containing such class files into machine code. Almost all of the runtime library used by GCJ come from the GNU Classpath project.
  • GDB: GNU Debugger – GNU Debugger (GDB) is the standard debugger for the GNU software system. It is a portable debugger that runs on many Unix-like systems and works for many programming languages, including C, C++, and FORTRAN. Originally written by Richard Stallman in 1988, GDB is free software released under the GNU General Public License. GDB offers extensive facilities for tracing and altering the execution of computer programs.
  • GDL: GNU Data Language – GNU Data Language(GDL) is a free IDL (Interactive Data Language) compatible incremental compiler. It runs existing IDL programs from the Research Systems Inc.
  • GDM:  GNOME Display Manager – GNOME Display Manager(GDM) provides an alternate display manager for the X Window System. The X Window System by default uses the X display manager (XDM). However, resolving XDM configuration issues typically involves using the command line. GDM allows users to customize or troubleshoot settings without having to resort to a command line. Users can pick their session type on a per-login basis. GDM also features easy customisation with themes.
  • Geeklog – Geeklog is Open-Source software that works as a Weblog, CMS or Web Portal. Geeklog is written in PHP and uses MySQL as a backend database. Geeklog allows you to create your own virtual community portal complete with user administration, story posting, customised look, comments, polls, calendar, web links, content syndication, and more.
  • Generic Software – Generic Software, contrast with “custom software”, refers to the ready-made software, traditionally shrink-wrapped but downloadable in today’s market.Â
  • GeoGebra – GeoGebra is a free dynamic mathematics software that joins [[geometry[[, [[algebra[[ and [[calculus[[. It is developed for education in secondary schools by Markus Hohenwarter at the University of Salzburg.
  • Geronimo Application Server – The Geronimo Application Server is an open source application server developed by the Apache Software Foundation, and it is under the Apache licence. The Geronimo application server has already met the Sun J2EE 1.4 Technology Compatibility Kit (TCK) since version 1.0 M4.
  • gFTP – gFTP is a free/open source multithreaded FTP client. It is most used on Unix-like systems, but it can be used on Microsoft Windows and Mac OS X. It includes both a GUI (which utilizes the GTK+) and a command-line interface. gFTP is released under the terms of the GPL and has been translated into 41 languages.
  • GHC: Glasgow Haskell Compiler – Glasgow Haskell Compiler (GHC), also known as Glorious Haskell Compiler, is an open source native code compiler for the functional programming language Haskell which was developed at the University of Glasgow.
  • Ghost: General Hardware-Oriented Software Transfer – General Hardware-Oriented Software Transfer (Ghost) is a disk cloning program, originally produced by Binary Research, but purchased by Symantec in 1998. The Ghost program launched the market for disk-cloning software.
  • GIFT: GNU Image Finding Tool – GNU Image Finding Tool (GIFT) is a Content Based Image Retrieval System (CBIRS). The GIFT is based on Viper, the result of a research effort at the Vision Group at the computer science center of the University of Geneva. The GIFT is an open framework for content-based image retrieval. It is designed to accommodate new ways of querying the framework. The protocol for client-server communication, MRML, is XML based and fully documented. This aims to promote code reuse among researchers and application developers.
  • GIMP: GNU Image Manipulation Program – GNU Image Manipulation Program (GIMP) is a bitmap graphics editor, a program for creating and processing raster graphics. It also has some support for vector graphics. The project was started in 1995 by Spencer Kimball and Peter Mattis and is now maintained by a group of volunteers; it is licensed under the GNU General Public License.
  • glibc: GNU C Library – The GNU C Library (glibc) is GNU’s C standard library, a free software package available under the GNU Lesser General Public License. Glibc is used in systems which run many different kernels and different hardware architectures. Its most common use is in Linux systems on x86 hardware, but officially supported hardware includes: x86, Motorola 680×0, DEC Alpha, PowerPC, ARM, ETRAX CRIS, MIPS, s390, and SPARC.Â
  • GLPK: GNU Linear Programming Kit – The GNU Linear Programming Kit (GLPK) is a software package intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library. The package is part of the GNU Project, which is released under the GNU General Public License.
  • Glueware – Glueware is a type of software that can be used to “glue” or integrate systems, software components and databases together, to form a seamless integrated system.
  • Gmail Drive – Gmail Drive, a free shell namespace extension (“add-on”) for Microsoft Windows Explorer, makes it possible to create a new network share on the workstation. In order to use this add-on, you need a Gmail account from Google Gmail. The add-on enables you to use the normal Windows desktop file copy and paste commands to transfer files to and from your Gmail account just as if it was physically located on your local network.
  • GML: Generalized Markup Language – Generalized Markup Language (GML) is a set of macros (tags) for the IBM text formatter, “SCRIPT”. SCRIPT is the main component of IBM’s Document Composition Facility (DCF). GML simplifies the description of a document in terms of its format, organization structure and content parts and their relationship, and other properties. GML markup (or tags) describe such parts as chapters, important sections, and less important sections (by specifying heading levels), paragraphs, lists, tables, and so forth. Using GML, a document is marked up with tags that define what the text is, in terms of paragraphs, headers, lists, tables, and so forth. The document can then be automatically formatted for various devices simply by specifying a profile for the device. For example, it is possible to format a document for a laser printer or a line (dot matrix) printer or for a screen simply by specifying a profile for the device without changing the document itself.
  • GNAT: GNU NYU Ada Translator – GNU NYU Ada Translator (GNAT) is the GNU Ada Compiler based on GNU Compiler Collection (GCC). The front-end and runtime are written in Ada, and are licensed using the General Public License.
  • GNAVI – GNAVI is an open source visual software development environment licensed under the GPL. The language foundation of GNAVI is the international standard of engineering, Ada. GNAVI for Microsoft Windows offers comparable features to Delphi and Visual Basic including use of Active X controls and the ability to interface with .NET and Java.
  • GNOME:  GNU Network Object Model Environment – GNU Network Object Model Environment (GNOME) project is an international effort to create an easy-to-use computer desktop environment built entirely from software considered free by the Free Software Foundation.
  • GNU Arch – GNU arch is a software revision control system that is part of the GNU Project and licensed under the GNU General Public License. It is used to keep track of the changes made to a source tree and to help programmers combine and otherwise manipulate changes made by multiple people or at different times. GNU arch is decentralized, removing the need for a central server for which developers have to be authorized in order to contribute.
  • GNU Aspell – GNU Aspell (Aspell) is the standard spelling checker software for the GNU software system designed to replace Ispell. It also compiles for other Unix-like operating systems and Microsoft Windows. The main program is licensed under the GNU Lesser General Public License, the documentation under GNU Free Documentation Licence. Dictionaries for it are available for about 70 languages.
  • GNU Build System – The GNU build system, a part of GNU toolchain, is a suite of tools produced by the GNU project that assist in making packages portable to many UNIX-like systems.
  • GNU General Public License – GNU General Public License (GNU GPL) also known as General Public License (GPL) is a widely used free software license, originally written by Richard Stallman for the GNU project. The GNU Project was launched in 1984 to develop a complete UNIX style operating system which is free software: the GNU system. The latest version of the license, version 2, was released in 1991. The GNU Lesser General Public License (LGPL) is a modified version of the GPL, intended for some software libraries.
  • GNU Hurd – The GNU Hurd is a component of the core of the GNU operating system distributed as free software under the GPL. It is a set of servers (or daemons, in Unix-speak) that work on top of GNU Mach or the L4 microkernel. The Hurd aims to surpass Unix kernels in functionality, security, and stability, while remaining largely compatible with them. This is done by having the Hurd track the POSIX specification, while avoiding arbitrary restrictions on the user.
  • GNU Mach – GNU Mach, an implementation of the Mach microkernel, is the default microkernel in the GNU Hurd kernel of the GNU operating system. GNU Mach runs on IA-32 machines, and is expected to be ported to other computers. Mach is particularly well suited for SMP and network cluster techniques. Thread support is provided at the kernel level, and the kernel itself takes advantage of that. Network transparency at the IPC level makes resources of the system available across machine boundaries. GNU Mach is maintained by developers on the GNU project and distributed under GNU General Public License (GPL).
  • GNU MDK: GNU MIX Development Kit – The GNU MIX Development Kit(GNU MDK) is a software package for developing, running and debugging programs written in MIXAL, an assembly-like language for programming a fictional computer called MIX. It is a free package distributed under GNU General Public License (GPL).
  • GNU Readline – GNU readline is a software library created and maintained by the GNU project. It provides line-editing capabilities. For instance, in a readline-enabled application, pressing C-b (CTRL-B) moves the cursor back one space, whereas C-f moves the cursor forward one space; C-r searches in history; these key bindings (which are the default, although bindings like vi’s are optional) are taken from one of GNU’s earliest and most popular projects, the text editor Emacs. Readline supports a variety of advanced features, including a kill ring (a more flexible version of a copy/paste clipboard) and tab completion. As a cross-platform library, readline allows many applications on various systems to exhibit identical line-editing behavior. It is a free package distributed under GNU General Public License (GPL).
  • GNU Robots – GNU Robots is a computer game for programmers. The goal is to guide a robot simulation around a maze, consuming food, avoiding baddies, and collecting as many prizes as possible in the process. However, the player cannot control the robot once the game begins; the robot acts according to a Scheme script previously written by the player. It is a free package distributed under GNU General Public License (GPL).
  • GNU Savannah – GNU Savannah is a project of the Free Software Foundation, which serves as a collaborative software development management system for Free Software projects. Savannah currently offers CVS, mailing list, web hosting, file hosting, and bug tracking services. It is a free package distributed under GNU General Public License (GPL).
  • GNU Screen – GNU Screen is a GNU fullscreen console multiplexer which permits a user to multiplex one terminal into multiple terminals. Thus screen allows the user to perform several additional tasks over a normal terminal. It is a free package distributed under GNU General Public License (GPL).
  • GNU TEXMACS – GNU TEXMACS, alternatively called TeXmacs, is a free scientific word processor component of the GNU project, which was inspired by both TeX and GNU Emacs. The program allows you to write structured documents via a user-friendly WYSIWYG interface. New styles may be created by the user. The program implements high-quality typesetting algorithms and TeX fonts, which help the user to produce professional looking documents.
  • GNU Toolchain – The GNU toolchain refers to a collection of the programming tools produced by the GNU project. These tools form an integrated system that is used for programming both applications and operating systems. Parts of the toolchain are also widely used in the Solaris Operating Environment (which, in the opinion of many, needs the GNU tools for reasonable usability) and Microsoft Windows programming with Cygwin and MinGW/MSYS. Projects that are included in the GNU toolchain: – GNU make – build and compilation automation – The GNU Compiler Collection (GCC) – compilers for several languages – The GNU Binutils – linker, assembler and other tools – The GNU Debugger (GDB) – an interactive debugger – The GNU build system (autotools) – Autoconf, Autoheader, Automake, Libtool – makefiles generatorsÂ
  • GNU/kFreeBSD – GNU/kFreeBSD is an operating system that uses the kernel of FreeBSD in conjunction with GNU userland software. Currently, the following distributions of GNU/kFreeBSD are available: Debian GNU/kFreeBSD, Gentoo/FreeBSD. It should be noted that the k in kFreeBSD refers to the fact that only the kernel of the FreeBSD operating system is used.
  • GNU/Linux – GNU/Linux, simply called Linux in most cases, refers to all the variants GNU operating systems using the Linux kernel.
  • GNU/NetBSD – GNU/NetBSD is a term for an operating system using the NetBSD kernel but GNU userland software, like Debian GNU/NetBSD, a Debian version currently available for IA-32 and Alpha architectures.
  • GNU: Gnu’s Not UNIX – GNU, a recursive acronym for “GNU’s Not UNIX, is a project sponsored by the Free Software Foundation that develops and maintains a complete free UNIX like software environment including operating system kernel and utilities, editor, compiler and debugger. Variants of the GNU operating system, which use the kernel Linux, are now widely used; though these systems are often referred to as Linux, they are more accurately called GNU/Linux systems.
  • GNUstep – GNUstep is a free software implementation of NeXT’s OpenStep Objective-C libraries (called frameworks), widget toolkit, and application development tools not only for Unix-like operating systems, but also for Microsoft Windows. It is part of the GNU project.
  • Goto – Goto, also spelled as “go to”, “GO TO”, “GOTO”, is a construct and keyword found in several higher-level programming languages (e.g. Fortran, COBOL, BASIC, C) to cause an unconditional jump or transfer of control from one point in a program to another. The destination of the jump is usually indicated by a parameter after the command.
  • GPL: General Public License – General Public License(GPL) is a free license type applied to most software from the Free Software Foundation(FSF) and the GNU project and other authors who choose to use it. The normal licences as defined by the copyright law are designed to prevent users from sharing or changing it. By contrast, the General Public License is intended to provide the freedom to share and change software – to make sure the software including source code is open and free for all its users, distributors and modifiers (as long as the changes are clearly marked, the derivative work is not sold and is also licensed under the GPL.)
  • GPL: General Purpose Language – General Purpose Language(GPL), also known as general purpose programming language, is a programming language that can be used for any purposes. Examples of DSLs include C, C++, BASIC, FORTRAN, etc.
  • GPS: GNAT Programming Studio – GNAT Programming Studio (GPS), formerly known as the GNAT Programming System, is a free multi-language IDE for GNU/Linux, MS Windows and Solaris/Sparc. GPS uses GTK+ as graphical user interface. This IDE is released by AdaCore under the GNAT Modified General Public License.
  • Greenware – Greenware is a software license which provides an end user with the right to use a particular program or obtain the source code, if he makes an effort to help out the environment such as using only recycled computer paper, recycling the computer paper after using it, using public transport, etc.
  • Greyware – Greyware refers to a malicious software or code that is considered to fall in the “grey area” between normal software and a virus. Greyware is a term for which all other malicious or annoying software such as adware, spyware, trackware, and other malicious code and malicious shareware fall under.
  • Groupware – Groupware, also known as Collaborative software, is a type of computer software or computer-based systems that support groups of people engaged in a common task (or goal) and that provide an interface to a shared environment. It is the basis for computer supported cooperative work. Such software systems as mail, calendaring, chat, wiki belong into this category.
  • GSL: GNU Scientific Library – GNU Scientific Library (GSL) is a software library written in the C programming language for numerical calculations in applied mathematics and science. The GSL is part of the GNU project and is distributed under the GNU GPL.
  • GTK+: GIMP Toolkit – GIMP Toolkit (GTK+), licensed under the LGPL as a free (and open source) software, is one of the two most popular widget toolkits for the X Window System, intended for creating graphical user interfaces. GTK+ and Qt have supplanted Motif, previously the most widely-used X widget toolkit. GTK+ uses the C programming language, although its designers use an object-oriented paradigm. The GNOME platform bindings provide for C++ (gtkmm), Perl, Ruby, Java and Python (PyGTK) bindings; others have written bindings for many other programming languages (including Ada, D, Haskell, Pascal, PHP, and all .NET programming languages).
  • GTK-Qt – The GTK-Qt Theme Engine is a project allowing GTK to use Qt widget styles. It behaves like a normal GTK theme engine, but calls functions from Qt instead of doing the drawing itself.
  • GUI: Graphical User Interface – A graphical user interface (GUI) is a method of human interacting with a computer through direct manipulation of graphical images and widgets in addition to text. A program with a GUI runs under some windowing system (e.g. The X Window System, Apple Macintosh, Microsoft Windows, Acorn RISC OS, NEXTSTEP). The program displays certain icons, buttons, dialogue boxes etc. in its windows on the screen and the user controls it mainly by moving a pointer on the screen (typically controlled by a mouse) and selecting certain objects by pressing buttons on the mouse while the pointer is pointing at them.
  • Guiltware – Guiltware refers to the kind of shareware software that attempts to make the user register and pay for the software by exploiting the user’s sense of guilt. For example, when people are using a un-registered version software, on-screen messages are displayed, usually when the program is started, reminding users that they have an unregistered version of the program that they should pay for if they intend to continue using it. Some programs will also display the message at random intervals while the program is in use.
  • GVN: Global value numbering – Global value numbering (GVN) is a compiler optimization based on the SSA intermediate representation. It sometimes helps eliminate redundant code that common subexpression evaluation (CSE) does not. At the same time, however, CSE may eliminate code that GVN does not, so both are often found in modern compilers. Global value numbering is distinct from local value numbering in that the value-number mappings hold across basic block boundaries as well, and different algorithms are used to compute the mappings.
  • GW Basic – GW-BASIC was a dialect of BASIC developed by Microsoft from BASICA, originally for Compaq. It is compatible with Microsoft/IBM BASICA, but was disk based and did not require the resources of the ROM included on IBM’s machines. It was bundled with MS-DOS operating systems on IBM PC compatibles by Microsoft. Like other early microcomputer versions of BASIC, GW-BASIC lacked many of the structures needed for structured programming such as local variables, and GW-BASIC programs executed relatively slowly, due to the fact that it was an interpreted programming language. It did have a large number of graphics commands.
  • Gzip: GNU zip – GNU zip (gzip) is a GNU free software file compression program. It was created by Jean-loup Gailly and Mark Adler. gzip is based on the DEFLATE algorithm, which is a combination of LZ77 and Huffman coding. DEFLATE was intended as a replacement for LZW and other patent-encumbered data compression algorithms which, at the time, limited the usability of compress and other popular archivers. “gzip” is often also used to refer to the gzip file format.

H

  • Handwriting Recognition – Handwriting recognition refers to a computer receiving handwritten input and intelligently recognize it to some characters. The image of the written text may be sensed “off line” from a piece of paper by optical scanning (optical character recognition). Alternatively, the movements of the pen tip may be sensed “on line”, for example, by a pen-based computer screen surface.
  • Haskell Programming Language – Haskell Programming Language, simply called Haskell in most cases, is a standardized pure functional programming language with non-strict semantics, named after the logician Haskell Curry. Haskell was designed by a committee from the functional programming community in April 1990. It features static polymorphic typing, higher-order functions, user-defined algebraic data types, and pattern-matching list comprehensions. Innovations include a class system, systematic operator overloading, a functional I/O system, functional arrays, and separate compilation.
  • Helper Applications – Helper application is an external viewer program launched to display content retrieved using a web browser. These applications commonly let you see and hear video and audio files, as well as view specialized text files or virtual reality models. Windows Media Player, QuickTime, Shockwave, CosmoPlayer, and RealAudio are examples of helper applications. Another common term for these programs is “plug ins,” because they supplement the capabilities of your browser, and only run when they are needed to display files.
  • Heterogeneous System – Heterogeneous systems, in software context, refer to systems that have different aspects such as the interface, the implementation, the data, etc. Two systems in a family are heterogeneous to the extent that they are incompatible in some way. One may represent information differently or not include certain functionality or adopt different security policies. If everything between two systems are the same and interoperate, they are homogeneous. Federating or integrating homogeneous systems is presumably simpler than federating heterogeneous systems.
  • Hex editor – Hex editor is a tool used to create and modify binary files.
  • High-Level Language – High-level language, also known as high-level programming language, is a programming language that, in comparison to low-level programming languages, may be more abstract, easier to use, or more portable across platforms. Examples include languages such as C, FORTRAN, or Pascal that enables a programmer to write programs that are more or less independent of a particular type of computer.
  • HLA: High Level Architecture – The High Level Architecture (HLA) is a general purpose architecture for distributed computer simulation systems. Using HLA, computer simulations can communicate to other computer simulations regardless of the computing platforms. Communication between simulations is managed by a runtime infrastructure (RTI).
  • HLA: High Level Assembly – High Level Assembly (HLA) is an assembly language developed by Randall Hyde which can use high level language constructs to aid x86 assembly programmer beginners and advanced assembly developers alike. It fully supports advanced data types and object-oriented assembly language programming. It uses a syntax loosely based on several high-level languages, such as C/C++, Ada, Modula-2, and Pascal, to allow the creation of readable assembly language programs, and to allow High-level language (HLL) programmers to learn HLA as rapidly as possible.
  • HMP: Hybrid Multiprocessing – Hybrid multiprocessing(HMP) refers to a kind of multitasking which provides some elements of symmetric multiprocessing, using add-on IBM software called MP/2. IBM OS/2 supports HMP.
  • Hoard Memory Allocator – The Hoard memory allocator, or Hoard, is a memory allocator for Linux, Solaris, Microsoft Windows and other operating systems. Hoard can improve the performance of multithreaded applications by providing fast, scalable memory management functions (malloc and free). In particular, it reduces contention for the heap (the central data structure used in dynamic memory allocation) caused when multiple threads allocate or free memory, and avoids the false sharing that can be introduced by memory allocators. At the same time, Hoard has low fragmentation.
  • Homogeneous System – Homogeneous systems, in software context, refer to the systems if they have the same aspects like the same interface, the same implementation, that can interoperate, can share data, etc. Otherwise, they are heterogeneous, which may represent information differently or not include certain functionality or adopt different security policies. Federating or integrating homogeneous systems is presumably simpler than federating heterogeneous systems.
  • Horizontal Software – Horizontal software, also known as horizontal application, refers to the kind of software used by many different kinds of organizations, such as word processing or bookkeeping software.
  • HotHTML – HotHTML is a HTML editor and text editor rolled into one with a strong focus on web development, originally released as a freeware web coding tool (WYSIWYN).
  • HSQLDB – HSQLDB is a relational database management system written in Java. It is based on Thomas Mueller’s discontinued Hypersonic SQL Project. The software is available under a BSD license. HSQLDB has a JDBC driver and supports a rich subset of SQL-92, SQL-99, and SQL:2003 standards. It offers a fast, small database engine which offers both in-memory and disk-based tables.
  • HTML Editor – A HTML editor is an software application for creating web pages. Although the HTML markup of a web page can be written with any text editor, specialised HTML editors can offer convenience and added functionality. For example, many HTML editors can work not only with HTML, but also with related technologies such as CSS, XML and JavaScript or ECMAScript.
  • HTML-Kit – HTML-Kit is an HTML editor for Microsoft Windows made by chami.com. It falls into the class of HTML editors that emphasize editing HTML code directly, although it does have built-in functionality for previewing code.
  • Hydrogen Software – Hydrogen software is an advanced drum machine application originally developed for GNU/Linux but later ported to Windows and Mac OS X. Its main goal is to bring professional yet simple and intuitive pattern-based drum programming.
  • HyperCard – HyperCard was an application program from Apple Computer in 1987. It most closely resembles a database application in concept, in that it stores information, and is graphical, flexible and creates files that are easy to modify. It also includes HyperTalk to manipulate data and the user interface. HyperCard users often used it as a programming system for Rapid Application Development as opposed to a database. The HyperCard model consists of cards, and collections of cards, called stacks. You can connect the cards in various ways, and leaf through them the way you would with a set of Rolodex cards. In addition to data, each card can contain graphics and buttons that trigger other events, such as sound or video.
  • Hypermedia – Hypermedia, a logical extension of the term hypertext, allows graphics, audio, video, plain text and hyperlinks intertwine to create a generally non-linear medium of information. This contrasts with multimedia, which, although often capable of random access in terms of the physical medium, is essentially linear in nature. The World Wide Web is a classic example of hypermedia, whereas a movie on a DVD is an example of standard multimedia. The lines between the two can (and often do) blur depending on how a particular technological medium is implemented.
  • HyperTalk – HyperTalk is a high-level programming language created in 1987 by Dan Winkler and used in conjunction with Apple Computer’s HyperCard hypermedia program. The main target audience of HyperTalk was beginning programmers, hence HyperTalk programmers were usually called authors, and the process of writing programs was called “scripting”. HyperTalk scripts are fairly similar to written English, and use a logic structure similar to the Pascal programming language.

I

  • IBALANCE – iBALANCE is the specialized software that recieves the data from the various sensors and gyroscopes on the IBOT powered wheelchair mobility system, allowing the iBOT to maintain balance during certain maneuvers. for example during curb climbing the seat remains level while parts of the chassis tilt to climb the curb.
  • IDE: Integrated Development Environment – Integrated development environment (IDE), also known as integrated design environment and integrated debugging environment, is a type of computer software that assists computer programmers to develop software. IDEs normally consist of a source code editor, a compiler and/or interpreter, build-automation tools, and (usually) a debugger. Sometimes a version control system and various tools to simplify the construction of a GUI are integrated as well. Many IDEs also integrate a class browser, an object inspector and a class hierarchy diagram, for use with object oriented software development. Although some multiple-language IDEs are in use, such as the Eclipse IDE, NetBeans or Microsoft Visual Studio, typically an IDE is devoted to a specific programming language, as in the Visual Basic IDE.
  • I-DEAS: Integrated-Design Engineering Analysis Software – Integrated-Design Engineering Analysis Software (I-DEAS) was a CAD/CAM software package of SDRC which was bought in 2002 by EDS and now merged into UGS’s product NX (Unigraphics). I-DEAS also incorporates Finite Element Method solver for mechanical stress/strain, thermal analysis, and other FEM analysis techniques.
  • IDMS: Integrated Database Management System – Integrated Database Management System(IDMS) is a (network) CODASYL database management system first developed at B.F. Goodrich and later marketed by Cullinane Database Systems (renamed Cullinet in 1983). Since 1989 the product has been owned by Computer Associates, who renamed it CA-IDMS.
  • IEEE 829-1998 – IEEE 829-1998, also known as the 829 Standard for Software Test Documentation, is an IEEE standard that specifies the form of a set of documents for use in eight defined stages of software testing, each stage potentially producing its own separate type of document. The standard specifies the format of these documents but does not stipulate whether they all must be produced, nor does it include any criteria regarding adequate content for these documents.
  • IGS: Interactive Geometry Software – Interactive geometry software (IGS) are computer programs which allow one to create and then manipulate geometric constructions, primary in plane geometry. One starts construction by putting a few points and using them to define new objects (lines, circles, other points, etc). After some construction is done, one can move the points one starts with and see how the construction changes.
  • IIS: Internet Information Server – Internet Information Server (IIS), also known as Internet Information Service, is a Microsoft developed system that provides a set of Internet-based services for servers using Microsoft Windows. It is the world’s second most popular web server in terms of overall websites behind the Apache HTTP Server although the gap is decreasing. IIS currently supports FTP, SMTP, NNTP and HTTP/HTTPS.
  • IM: Identity Management – Identity Management (IM) is an integrated system of business processes, policies and technologies that enable organizations to facilitate and control their users’ access to critical online applications and resources — while protecting confidential personal and business information from unauthorized users.
  • ING: International Network of Crackers – International Network of Crackers (INC) was one of the premier cracking/releasing warez for the IBM PC during the very late 1980s and early 90s.The formation of INC was the result of the merger of several cracking groups, including Union, based out of Texas, and the Miami Cracking Machine (MCM), based out of Florida.
  • Ingres – Ingres is a commercially supported, open-source relational database management system. Ingres was first created as a research project at the University of California, Berkeley starting in the early 1970s and ending in the early 1980s. The original code, like that from other projects at Berkeley, was available at minimal cost under a version of the BSD license. Since the mid-1980s, Ingres had spawned a number of commercial database applications, including Sybase, Microsoft SQL Server, NonStop SQL and a number of others. Ingres Corporation owns and provides support and services for Ingres, OpenROAD and the connectivity products. In February 2006, Ingres Corporation released Ingres 2006 under the GNU General Public Licence.
  • INI File: Initialization File – An initialization file (INI file) is a configuration file that contains configuration data for Microsoft Windows based applications. Starting with Windows 95, the INI file format was superseded but not entirely replaced by a registry database in Microsoft operating systems. Although made popular by Windows, INI files can be used on any system thanks to their flexibility. They allow a program to store configuration data, which can then be easily parsed and changed.
  • Inline Expansion – Inline expansion or inlining for short is a compiler optimization which “expands” a function call site into the actual implementation of the function which is called, rather than each call transferring control to a common piece of code. This reduces overhead associated with the function call, which is especially important for small and frequently called functions, and it helps call-site-specific compiler optimizations, especially constant propagation. The main drawback is that the expansion usually results in a larger binary code, which can actually hurt performance if it damages locality of reference or exceeds resource constraints.
  • Instruction – In computer technologies, instruction, also known as computer instruction, refers to a basic command at the level of computer’s machine language.  It is typically a single operation of a processor within a computer architecture.
  • Instruction Scheduling – Instruction scheduling, in computer technologies, is a compiler optimization phase used to improve instruction-level parallelism, which improves performance on machines with instruction pipelines. Without changing the meaning of the instructions, instruction scheduling tries to: 1) avoid pipeline stalls by rearranging the order of instructions; 2) order the instructions to avoid duplicated memory access.
  • Instruction Selection – Instruction selection is a compiler optimization that transforms an intermediate representation of a program into the final compiled code, either in binary or assembly format. It works by “covering” the intermediate representation with as few tiles as possible.
  • Instruction Set – An instruction set, also known as instruction set architecture (ISA), is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O. An ISA includes a specification of the set of opcodes (machine language), the native commands implemented by a particular CPU design.
  • Insure++ – Insure++ is a memory debugger computer program, used by software developers to detect various errors in programs written in C and C++. It is made by Parasoft, and is functionally similar to other memory debuggers, such as Purify and Valgrind.
  • Integrated Software Package – Integrated software package refers to a suite of software with several applications integrated into one package. For example, a software package such as Microsoft Office that contains word processing, spreadsheet, database, graphics and communications. They are designed so that the user can move easily from one application to another, and transfer data easily from one application to another within the software package.
  • Integration Testing – Integration testing, also known as system integration testing (SIT), is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing. Integration testing takes as its input modules that have been checked out by unit testing, groups them in larger aggregates, applies tests defined in an Integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. The purpose of Integration testing is to verify functional, performance and reliability requirements placed on major design items.
  • Intelligent Device Management – Intelligent Device Management is a term used for enterprise software applications that allow various equipment manufacturers to proactively monitor and manage remote equipment, systems and products via the Internet and provide instant and cost-effective service & support to their customers.
  • IntelliJ IDEA – IntelliJ IDEA is a commercial Java IDE by JetBrains company. It includes a set of integrated refactoring tools that allow programmers to quickly redesign their code. A number of its features accelerate development and allow programmers to concentrate on functionality while IntelliJ IDEA handles more mundane coding tasks. Among other features, IntelliJ IDEA provides close integration with popular open source development tools such as CVS, Subversion, Apache Ant and JUnit.
  • Interchangeability – In computer science, interchangeability is an ability that an object can be replaced by another object without affecting code using the object. That chance usually requires two objects share an interface that is either same strictly or compatible in particular case.Â
  • Interface – An interface, in computer programming, is a defined means for a system to communicate with other systems. It is a boundary between a system and its environment providing ways of providing the system inputs and receiving outputs. In Object Oriented programming, class definitions and method signatures provide interfaces. Application program interfaces (APIs) form the interface of a system to applications and often consist of collections of functions or commands in a scripting language. Interfaces may be hidden (available only to the system developer) or exposed (available to others).
  • Interface Encapsulation – An interface encapsulates refers to an implementation in a system in which the system implementation can be changed without changing the interface. With the interface encapsulation property, the changes in the system will not effect its way to communicate with other systems.
  • Interface Standard – Interface standard refers to a standard in communications that defines one or more functional and/or physical characteristics necessary to allow the exchange of information between two or more systems or equipments. An interface standard may include operational specifications and acceptable levels of performance.
  • Internal Command – Internal commands are executed by the command processor programs COMMAND.COM in DOS and CMD.EXE in OS/2. The command processor is always loaded when the operating system is loaded. In DOS and OS/2, a command, such as Copy, Dir and Rename, are internal commands which may be used at all times.
  • Interpreter Program – An interpreter program is a computer program that executes an input program, while a compiler does not execute its input program (the source code) but only translates it into another language, usually executable machine code (also called object code) which is output to a file for later execution. People can execute the same source code either directly by an interpreter or by compiling it and then executing the machine code produced later. It takes longer to run a program under an interpreter than to run the compiled code but it can take less time to interpret it than the total time required to compile and run it. This is especially important when prototyping and testing code when an edit-interpret-debug cycle can often be much shorter than an edit-compile-run-debug cycle.
  • Interprocedural Optimization – Interprocedural optimization is an integral component in a compilation system  to improve computing performance. The importance of interprocedural optimization stems from two sources: it increases the context available to the optimizing compiler, and it enables programmers to use procedure calls without the concern of hurting execution time.
  • Inverse mapping – Inverse mapping is a procedure used to create associations between real or virtual objects that involves some type of reversal of another process or concept. Various types of inverse mapping are used in a wide range of mathematical applications.
  • Iprism – IPrism is an Internet filter distributed by St. Bernard Software. It can monitor, block, and report on inappropriate Internet access.
  • IR: Information Retrieval – Information retrieval (IR) is the science of searching for information in documents, searching for documents themselves, searching for metadata which describes documents, or searching within databases, whether relational stand-alone databases or hypertext networked databases such as the Internet or intranets, for text, sound, images or data. There is a common confusion, however, between data retrieval, document retrieval, information retrieval, and text retrieval, and each of these has their own bodies of literature, theory, praxis and technologies.
  • IRC Bot: Internet Relay Chat Bot – Internet Relay Chat (IRC) bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user. It differs from a regular client in that instead of providing interactive access to IRC for a human user, it performs automated functions. Often, an IRC bot is deployed as a detached program running from a stable host. It sits on an IRC channel to keep it open and prevents malicious users from taking over the channel. It can be configured to give channel operator status to privileged users when they join the channel, and can provide a unified channel operator list. An IRC bot can also perform many other useful functions, such as logging what happens in an IRC channel, giving out information on demand (very popular in IRC channels dealing with user support), creating statistics, hosting trivia games, and so on.
  • ISA: Instruction Set Architecture – Instruction set architecture, also known as instruction set, is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O. An ISA includes a specification of the set of opcodes (machine language), the native commands implemented by a particular CPU design.
  • IT Management: Information Technology Management – Information technology management (IT management), also called Management of Information Systems (MIS), is a combination of two branches: information technology and management. One implies the management of a collection of systems, infrastructure, and information that resides in them. Another implies the management of information technologies as a business function. This aims at achieving the goals and objectives of an organisation through computers.
  • IT: Information Technology – Information Technology (IT) is a broad subject concerned with technology and other aspects of managing and processing information, especially in large organizations. In particular, IT deals with the use of electronic computers and computer software to convert, store, protect, process, transmit, and retrieve information. For that reason, computer professionals are often called IT specialists or Business Process Consultants, and the division of a company or university that deals with software technology is often called the IT department. Other names for the latter are information services (IS) or management information services (MIS), managed service providers (MSP).
  • ITS: Incompatible Time-Sharing System – Incompatible time-sharing System(ITS) is operating system written for the DEC PDP-6 and PDP-10 at MIT and long used at the MIT AI Lab. ITS pioneered many important innovations, including transparent file sharing between machines and terminal-independent I/O. After about 1982, most actual work was shifted to newer machines, with the remaining ITS boxes run essentially as a hobby and service to the hacker community.
  • IZArc – IZArc is a freeware file archiver for Microsoft Windows. It handles a great variety of archive formats, including some of the commonly used ones like zip, rar, gzip, bzip2, and 7z.One distinguishing feature of IZArc is the ability to convert an archive from one format to another format.

J

  • J2EE: Java 2 Platform, Enterprise Edition – Java 2 Platform, Enterprise Edition (J2EE), now called Java Platform, Enterprise Editor(Java EE), is a programming platform—part of the Java Platform—for developing and running distributed multitier architecture Java applications, based largely on modular software components running on an application server. The Java EE platform is defined by a specification. Similar to other Java Community Process specifications, Java EE is also considered informally to be a standard because providers must agree to certain conformance requirements in order to declare their products as Java EE compliant; albeit with no ISO or ECMA standard.
  • JACK Audio Connection Kit – The JACK Audio Connection Kit (JACK) is a soundserver or daemon that provides low latency connections between so-called jackified applications. It is created by Paul Davis and others and licensed under the GPL. JACK is free audio software. It can use ALSA, PortAudio and (still experimental) OSS as its back-end. As of 2003 it runs on GNU / Linux and Mac OS X.
  • JADE Programming Language – JADE is an object-oriented programming language that exhibits a seamlessly integrated object-oriented database management system. It is designed to be an end-to-end development environment, which allows systems to be coded in one language from the database server at one end down to the clients at the other.
  • Jakarta Project – The Jakarta Project creates and maintains open source software for the Java platform. It operates as an umbrella project under the auspices of the Apache Software Foundation, and all of Jakarta products are released under the Apache License.
  • Java – Java, in computer programming, is an object-oriented programming language developed by Sun Microsystems. It resembles C++, but was designed to avoid some of C++’s most notorious flaws. The Java language is used extensively on the World Wide Web, particularly because of its cross-platform nature, and its sandbox security concept.
  • Java Beans – Java bean, in computer programming, is a portable, platform-independent means of creating reusable components. Created by Sun Microsystems, Java Beans is intended to be similar in functionality to OpenDOC, ActiveX, OLE, and COM.
  • Java Bytecode – Java bytecode is the form of instructions that the Java virtual machine executes. Each bytecode instruction is one byte in length (hence the name), thus the number of bytecodes is limited to no more than 256. Not all 256 possible bytecode values are used, in fact Sun Microsystems, the original creators of the Java programming language, the Java virtual machine and other components of the Java Runtime Environment, have set aside a number of values to be permanently unimplemented. A Java programmer does not need to be aware of or understand Java bytecode at all. However, Understanding bytecode and what bytecode is likely to be generated by a Java compiler helps the Java programmer in the same way that knowledge of assembler helps the C or C++ programmer.
  • Java EE: Java Platform, Enterprise Edition – Java Platform, Enterprise Editor(Java EE), formerly known as Java 2 Platform, Enterprise Edition (J2EE), is a programming platform part of the Java Platform for developing and running distributed multitier architecture Java applications, based largely on modular software components running on an application server. The Java EE platform is defined by a specification. Similar to other Java Community Process specifications, Java EE is also considered informally to be a standard because providers must agree to certain conformance requirements in order to declare their products as Java EE compliant; albeit with no ISO or ECMA standard.
  • Java Programming Language – Java programming language, simply called Java in most cases, is an object-oriented programming language developed by James Gosling at Sun Microsystems 1995. Java borrows much syntax from C and C++ but has a simpler object model and fewer low-level facilities. Unlike conventional languages which are generally designed to be compiled to native code, Java is compiled to a bytecode which is then run (generally using JIT compilation) by a Java virtual machine. Java has been adopted as a multipurpose, cross-platform lingua franca for network computing, including the World Wide Web.
  • JavaCC: Java Compiler Compiler – Java Compiler Compiler(JavaCC) is a parser generator for the Java programming language. JavaCC generates a parser for a grammar provided in extended Backus–Naur form (EBNF) notation with the output as the Java source code.
  • Javadoc – Javadoc is a computer software tool from Sun Microsystems for generating API documentation into HTML format from Java source code. Javadoc is the industry standard for documenting Java classes. Most integrated development environments (IDEs) will automatically generate Javadoc HTML.
  • JavaScript – JavaScript is a scripting language developed by Netscape to enable Web authors to design interactive sites. Although it shares many of the features and structures of the full Java language, it was developed independently. Javascript can interact with HTML source code, enabling Web authors to spice up their sites with dynamic content. JavaScript is endorsed by a number of software companies and is an open language that anyone can use without purchasing a license.
  • Jbuilder – JBuilder is a Java integrated development environment(IDE) from Borland. It has won several consecutive awards as the most powerful IDE for professional Java Programmming. Borland sells a variety of versions of JBuilder. There is even a free limited version for beginners of the Java language.
  • JCP: Java Community Process – The Java Community Process (JCP), established in 1998, is a formalized process which allows interested parties to be involved in the definition of future versions and features of the Java platform. The JCP process involves the use of Java Specification Request (JSR), which are formal documents that describe proposed specifications and technologies to be added to the Java platform.
  • JDBC: Java Database Connectivity – Java Database Connectivity(JDBC) is an API for the Java programming language that defines how a client may access a database. It provides methods for querying and updating data in a database. JDBC is oriented towards relational databases. The Java Platform, Standard Edition includes the JDBC API together with an ODBC implementation of the API enabling connections to any relational database that supports ODBC. This driver is native code and not Java, and is closed source.
  • JHTML: Java HTML – Java HTML(JHTML) is a page authoring system developed at Art Technology Group (ATG). JHTML files have “.jhtml” filename extensions that contain standard HTML tags in addition to proprietary tags that reference Java objects running on a special server setup to handle requests for pages of this sort.
  • JMS: Java Message Service – The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a specification developed under the Java Community Process(JCP) as JSR 914. As of 2006, the current version is JMS 1.1.
  • JMX: Java Management Extensions – Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices (e.g. printers) and service oriented networks. An interesting detail of the API is that classes can be dynamically constructed and changed. JMX was defined by JSR 3 of the Java Community Process.
  • JOGL:  Java OpenGL – Java OpenGL(JOGL) is an implementation of OpenGL in Java. A thin wrapper around native system calls, JOGL allows access to most features available to C programmers, with the notable exception of Window system related calls in GLUT. Where function pointers were used in the C version of OpenGL, JOGL provides this functionality by allowing classes to be exposed via Java interfaces.
  • JOLIX – JOLIX, also known as 386BSD, is a free operating system produced from the BSD derived UNIX operating systems for the Intel 80386. 386BSD was originally derived from the generally available parts of the “Berkeley Net Release/2″. All rights with respect to 386BSD and JOLIX are now held exclusively by William Jolitz and Lynne Jolitz. 386BSD public releases ended in 1997 since code is now available from the many 386BSD-derived operating systems today such as such as Apple’s Darwin, OpenBSD, OpenSolaris, etc. 386BSD innovations include role-based security, ring buffers, self-ordered configuration, intuitive setup and installation, peer-to-peer download, and modular kernel design. 386BSD is often confused with BSD/386 which was developed by BSDi, a Berkeley spinout, starting in 1991.
  • Joomla! – Joomla! is a free, open source content management system written with PHP for publishing content on the world wide web and intranets using a MySQL database. Joomla! includes features such as page caching to improve performance, web indexing, RSS feeds, printable versions of pages, news flashes, blogs, forums, polls, calendars, website searching, and language internationalization.
  • JRT – JRT is an implementation of the computer programming language Pascal. It was available in the early 1980s on the CP/M operating system. JRT was a Pascal interpreter, that compiled down to its own pseudo-code totally separate from UCSD Pascal p-code.
  • JSR: Java Specification Request – Java Specification Request (JSR) is the formal documents generated by the Java Community Process (JCP) that describe proposed specifications and technologies to be added to the Java platform. Formal public reviews of JSRs are conducted before the JSR becomes final and is voted on by the JCP Executive Committee. A final JSR provides a reference implementation which provides a free implementation of the technology in source code form and a Technology Compatibility Kit to verify the API specification. The Java Community Process (JCP), established in 1998, is a formalized process which allows interested parties to be involved in the definition of future versions and features of the Java platform.
  • JSwat – JSwat is a standalone, graphical Java debugger front-end, written to use the Java Platform Debugger Architecture. JSwat is licensed under the GNU General Public License and it is freely available in both binary and source code form.
  • JuK – JuK is an audio player for K Desktop Environment (KDE), part of the kdemultimedia package. JuK supports collections of MP3, Ogg Vorbis, and FLAC audio files. In addition to do music play, JuK is primarily an audio jukebox application, with a strong focus on management of music.
  • Jump Command – Jump command is the term for a goto instruction, usually in a context of machine languages. “Branch” may be synonymous with “jump”, or may refer to jumps that depend on a condition.
  • Jump Threading – In computing, jump threading is a compiler optimization. In this pass, conditional jumps in the code that branch to identical or inverse tests are detected, and can be “threaded” through a second conditional test. This is easily done in a single pass through the program, following acyclic chained jumps until you arrive at a fixed point.
  • JVM: Java Virtual Machine – A Java Virtual Machine (JVM), a crucial component of the Java Platform originally developed by Sun Microsystems, is a virtual machine that executes Java bytecode. This code is most often generated by Java language compilers, although the JVM has also been targeted by compilers of other languages. The availability of JVMs on many types of hardware and software platforms enables Java to function both as middleware and a platform in its own right. Different computers require different JVMs but they should run the same Java code. This means that servers only need to provide one version of each applet, instead of different ‘native code’ versions for PCs, Apple Macintoshes, and UNIX workstations, as is the case with other plug-ins.

K

  • Kazaa Lite K++ – Kazaa Lite K++ is a later versions of Kazaa Lite included K++, which added a memory patcher that removed search limit restrictions, multi-source limits, and set one’s “participation level” to the maximum of 1000. KaZaA Lite K++ has the ability to resume downloads, play files, block your IP address from the RIAA. Kazaa Lite K++ is obsolete and replaced by Kazaa Lite Resurrection (or simply Kaza Lite).
  • Kazaa Lite Resurrection – Kazaa Lite Resurrection, also known as Kazaa Lite, is a P2P file sharing client that supports the FastTrack P2P network. Kazaa Lite Resurrection is to continue the development forward on the now obsolete Kazaa Lite K++ application. Kazaa Lite Resurrection technology utilizes the core of Kazaa Media Desktop (KMD) and runs on Windows. Kazaa Lite Resurrection does not contain any adware or spyware. It also offers numerous improvements over KMD such as no bit-rate limits, expanded support for multi-source downloads, and additional P2P tools.
  • Kazaa Lite Revolution – Kazaa Lite Revolution is an alternative, unauthorized FastTrack P2P network client. Kazaa Lite Revolution, instead of Kazaa Media Desktop, may be used to connect to FastTrack. Revolution is sometimes advertised as an improved version of KMD. Their appearance is similar, but Revolution removes all advertising and adds several new features and tools. Kazaa Lite Revolution is a different application from Kazaa Lite Resurrection.
  • Kazaa or Kazzaa – Kazaa, also spelled as Kazzaa, is a free, peer-to-peer file sharing service over the Internet. To use Kazaa, a person downloads and installs a software client of Kazaa. Kazaa clients communicate with various registration servers, using Internet protocols, to identify files for sharing or download. The Kazaa P2P network holds peer registration information and then brokers connections between any two peer clients for file sharing.
  • K-Lite: Kazaa Lite – Kazaa Lite, also known as K-Lite, is a peer-to-peer file-sharing computer program. Kazaa Lite is an unauthorized modification of the Kazaa Media Desktop application which excludes adware and spyware and provides slightly extended functionality. It became available in April, 2002. It can be downloaded free of charge, and, as of mid-2005, is almost as widely used as the official Kazaa client itself. It connects to the same FastTrack network and thus allows to exchange files with all Kazaa users
  • Karma – In the computer software context, Karma is the name of a software package to aid signal processing and image processing for scientific applications.
  • KDbg – KDbg is an open-source graphical front-end for the GNU Debugger. KDbg is implemented using the K Desktop Environment (KDE) component architecture.
  • KDE: K Desktop Environment – K Desktop Environment(KDE) is a free desktop environment and development platform built with Trolltech’s Qt toolkit. It runs on most Unix and Unix-like systems, such as Linux, BSD, AIX and Solaris. There are also ports to Mac OS X using its X11 layer and to Microsoft Windows using Cygwin.
  • KDEAP: KDE Accessibility Project – KDE Accessibility Project(KDEAP) is a small on-line community of developers and other volunteers dedicated to ensure that the K Desktop Environment is accessible to all users, including those with physical handicaps. KDE accessibility software is bundled in the kdeaccessibility package.
  • KDM: KDE Display Manager – The KDE Display Manager(KDM) is a graphical login interface for computers using Unix-like operating systems. It is the K Desktop Environment replacement for X Window Display Manager (XDM). KDM allows users to pick their session type on a per-login basis. It uses Qt, like KDE and can be configured from the KDE control center. It also allows theming and user photos.
  • Kernel – Kernel, in computer technologies, is the central part in most computer operating systems for the management of the system’s resources and the communication between hardware and software components. As a basic component of an operating system, a kernel provides abstraction layers for hardware, especially for memory, processors and I/O that allows hardware and software to communicate. It also provides software facilities to userland software such as process abstractions, inter-process communication and system calls. Kernel may also mean an essential subset of a programming language or core language, in terms of which other constructs are (or could be) defined.
  • Kernel Mode – Kernel mode, also known as supervisor mode, is a privileged CPU mode. In kernel mode, the CPU may perform any operations provided for by its architecture, including any instructions,  I/O operations, accessing any area of memory, and so on. In the other CPU modes, certain restrictions on CPU operations are enforced by the hardware.
  • Keyboard Macro – Keyboard macro is a type of macros or group of definitions that allows short sequences of keystrokes to substitute long sequences of commands, and can automate repetitive tasks. They can be created either by using an application’s built-in macro features, or by means of a separate macro program.
  • Keyboard Mapping – Keyboard Mapping, also known as keyboard Layout or character mapping, is a table mapping which character is activated when a specific key on the keyboard is pressed. Different operating systems and/or languages have different keyboard maps.
  • Keychan: Key Changer – Key changer (keychan) is a small program/software, that can change a software license key to another key. A key changer is not illegal, since it only changes a key, which is not the same as a Keygen. A key changer can also be misunderstood, with the term Warez, but it’s still not Warez.
  • Keygen: Key Generator – Key generator(Keygen) is a small program that will generate a key or serial or registration number for a piece of software or cryptographic algorithms. Keygens are made available by software cracking groups for free download on various websites dedicated to software piracy.
  • KHTML – KHTML is the HTML layout engine developed by the K Desktop Environment (KDE) project.Built on the then new KPart framework, it was introduced with KDE2 in 2000, for use in the new Konqueror file and web browser which replaced the monolithic KDE File Manager. Written in C++ and licensed under the LGPL, it supports HTML 4, CSS 1 and 2, DOM and JavaScript.
  • Killer App: Killer Application – Killer application, also known as killer app, is a computer program that is so useful or desirable that it proves the value of some underlying technology, such as a gaming console, operating system, or piece of computer hardware or deploying an entire network. Killer applications are very rare. One of examples was VisiCalc, the first spreadsheet to run on a personal computer because it provided an unique tool for people to manipulate numbers easily without the need for programming skills. Another example of the killer app is Voice over IP (VOIP), which brough telephony service opportunities using packet network.
  • KIS: Knowbot Information Service – The Knowbot Information Service (KIS), also known as netaddress, is a knowbot that provides a uniform user interface to a variety of remote directory services such as whois, finger, X.500, MCIMail. By submitting a single query to KIS, a user can search a set of remote white pages services and then see the results of the search in a uniform format.
  • K-Meleon – K-Meleon is a web browser by the Mozilla Foundation to provide a light-weight browser running under Microsoft Windows by using the operating system’s native interface for the application’s toolbars and menus.
  • Knowbot: Knowleage Robot – Knowbot, or knowleage robot, is a program that will search a system or a network, such as the Internet, seeking and retrieving information on behalf of a user and reporting back when it has found it. An example is the Knowbot Information Service, which can process users’ queries by e-mail.
  • KOMPAS-3D – KOMPAS-3D is a commercial system by Ascon Group with the main task of modeling products for design cycle reduction and their fastest way into the mass production. The main components of KOMPAS-3D are the proprietary three-dimensional solid modeling system, a graphic drafting editor and a Part List (BOM) design module.
  • Kpackage – Kpackage is a package manager front-end for K Desktop Environment (KDE). It supports RPM and KISS, as well as Debian, Slackware, BSD and Gentoo packages. It provides a GUI for the management and upgrade of existing packages and the installation and acquirement of new packages. Additionally, it provides functionality to help manage package caches.
  • Kparts – KParts are individual components of the framework for the K desktop environment(KDE). KParts are based on the concepts of Microsoft’s Object Linking and Embedding. Konsole is available as a KPart and is used in applications like Konqueror and Kate. Good examples about how KParts can be used are Konqueror, which (among other things) uses the KWord part to display documents, KMPlayer part to play multimedia, and Kontact, which embeds kdepim applications under one roof.
  • Ktorrent – KTorrent is a BitTorrent client written in C++ for K desktop environment (KDE), thus using the Qt toolkit.Â
  • KVCD – KVCD is a non-standard modification of the MPEG-1 and MPEG-2 video standards for encoding digital video. It is compatible with a number of stand-alone DVD players, though this is by no means universal.
  • Kylix – Kylix is a Linux version of the Borland Corporation’s Delphi and C++ Builder development environments for Microsoft Windows. Kylix allows programmers to develop software applications for Linux using Object Pascal, C++, or C.

L

  • LADSPA: Linux Audio Developers Simple Plugin API – Linux Audio Developers Simple Plugin API(LADSPA) is a standard interface under Lesser General Public License for handling filters, effects and the like in Linux-based operating systems. It is used in many free audio software projects.
  • LAMIP: Linux Audio Multiple Interface Player – Linux Audio Multiple Interface Player(LAMIP) is a free audio player. Its goal is to provide an interface which is completely driven by plugins. LAMIP was designed from the ground up to be completely modular, that one can easily create input plugins for their favorite filetypes or streams, and output plugins for their favorite sound engine or for netcasting. LAMIP is also modular when it comes to front-ends, that LAMIP control plugins can be made available under GTK, Qt, or any other toolkit.
  • LAMP: Linux, Apache, MySQL and Perl/PHP/Python – The LAMP (or L.A.M.P.), an acronym of Linux, Apache, MySQL and Perl (or PHP or Python), refers to a set of free software programs commonly used together to run dynamic Web sites or servers. LAMP software collection defines the open source Web platform, including web server infrastructure, a programming paradigm of developing software, database system and a software distribution package.
  • LAN Server – LAN Server is an IBM Network Operating System (NOS). The IBM LAN Server started as a close cousin of Microsoft LAN Manager and first shipped in early 1988. It was originally designed to run on top of Operating System/2 Extended Edition. The network client was called IBM LAN Requester and was included with OS/2 EE 1.1 by default. LAN Server basically refers to the IBM OS/2 LAN Server product. There were also LAN Server products for other operating systems, notably AIX (now called Fast Connect) and OS/400.
  • Lattice C – Lattice C, also called Lattice Corporation, was the first C compiler for the IBM PC, in 1982. It was ported to many other platforms, such as mainframes (MVS), minicomputers (VMS), workstations (UNIX), OS/2, the Commodore Amiga and the Sinclair QL.
  • Lava Programming Language – Lava is an experimental, object-oriented, interpreter-based programming language with an associated programming environment (LavaPE = Lava Programming Environment), which gets along without a text editor, but is totally based on structure editors. Only comments, constants and new identifiers have to be entered as text.
  • Lazy Evaluation – Lazy evaluation is a computation optimization technique that attempts to delay computation of expressions until the results of the computation are known to be needed. It has two related, yet different, meanings that could be described as delayed evaluation and minimal evaluation. The benefits of lazy evaluation include: performance increases due to avoiding unnecessary calculations, avoiding error conditions in the evaluation of compound expressions, the ability to construct infinite data structures, and the ability to define control structures as regular functions rather than built-in primitives.
  • LCC: Local C Compiler – Local C Compiler(LCC) is a small retargetable ANSI C compiler developed by Chris Fraser and David Hanson. LCC is simple to be understood and well-documented. LCC can generate code for several processor architectures, including Alpha, SPARC, MIPS, and x86; there is also an LCC back-end that generates MSIL. Jacob Navia has also ported LCC to Windows.
  • Legacy System – A legacy system is an “antiquated” existing computer system or application program which continues to be used because the user does not want to replace or redesign it. Legacy systems are considered to be potentially problematic for several reasons. Legacy systems often run on obsolete (and usually slow) hardware, and sometimes spare parts for such computers become increasingly difficult to obtain. These systems are often hard to maintain, improve, and expand because there is a general lack of understanding of the system. The designers of the system may have left the organization, leaving no one left to explain how it works. Such a lack of understanding can be exacerbated by inadequate documentation or manuals getting lost over the years. Integration with newer systems may also be difficult because new software may use completely different technologies.
  • LGPL: Lesser General Public License – The GNU Lesser General Public License(GLGPL or LGPL), formerly the GNU Library General Public License, is a free software license published by the Free Software Foundation. It was designed as a compromise between the strong-copyleft GNU General Public License and simple permissive licenses such as the BSD licenses and the MIT License. The GNU Lesser General Public License was written in 1991 (and updated in 1999) by Richard Stallman, with legal advice from Eben Moglen. The main difference between the GPL and the LGPL is that the latter can be linked to (in the case of a library, ‘used by’) a non-(L)GPLed program, which may be free software or proprietary software. This non-(L)GPLed program can then be distributed under any chosen terms, provided that the terms allow “modification for the customer’s own use and reverse engineering for debugging such modifications.”
  • LHA – LHA, originally named LHarc, is a freeware compression utility and associated file format, created by Haruyasu Yoshizaki. Although no longer much used in the West, LHA remains popular in Japan. It was used by id Software to compress installation files for their earlier games, such as Doom. LHA has been ported to many operating systems and is the main archiving format on Amiga computers. Microsoft has released a Windows XP add-on, Microsoft Compression Folder for LHA archives, for the Japanese market only.
  • Libmp3splt – Libmp3splt is a free digital audio splitter library that runs on GNU/Linux, and Microsoft Windows operating systems. The source code for libmp3splt is released under the GNU General Public License. Libmp3splt is a library based on mp3splt. Mp3splt-gtk is a graphical user interface that uses libmp3splt.
  • Libre Software – Libre software refers to the kind of software that you may distribute with legal “freedom”, which may or may not cost anything to get it. The European Commission coined the term in 2000 to avoid the confusing ambiguity of the English adjective “free”, which means zero cost.
  • LightWave – LightWave, or LightWave 3D, is a computer graphics program for 3D modeling, rendering, and animation. Although the program originated on the Commodore Amiga, it has since been ported to support Mac OS X, Windows, and the render engine has also been ported to Linux platforms. It was once licensed by and is now entirely developed by NewTek.
  • Linker – Linker is a type of software development tool that accepts one or more object files as inputs and outputs. The linker is thus run after all of the source files have been compiled and assembled into object files.
  • Linoleum Programming Language – The L.In.O.L.E.U.M. (also called Linoleum or Lino) programming language, means Low-level INterfaced OverLanguage for Extremely Universal Machine-coding, developed by Alessandro Ghignola. It is unstructured, untyped, procedural, cross platform assembler, easier than native Assembly language, and twice as fast as C/C++. Uniquely, it is designed to be recompilable across different CPU’s.
  • Lint Programming Tool – Lint Programming Tool refers to a type of tools that flag suspicious usage in software written in any computer language. The term lint-like behavior is sometimes applied to the process of flagging suspicious language usage. Lint-like tools generally perform static analysis of source code. Lint tool can be used to check C and C++ programs for error-prone syntactical constructs. The C and C++ language standards are loosely written. Plenty of run-time details, such as the actual size of an int, are left up to compiler implementers. Lint can help programmer find dangerous and nonportable constructs in the code before a compiler turns them into run-time bugs.
  • Linux – Linux, also known as GNU/Linux, is a free and open source Unix-like computer operating system. Unlike proprietary operating systems such as Windows or Mac OS, all of Linux underlying source code is available to the general public for anyone to use, modify, and redistribute freely. Linux has gained the support of major corporations such as IBM, Sun Microsystems, Hewlett-Packard, and Novell for use in servers and is gaining popularity in the desktop market. It is used in systems ranging from supercomputers to mobile phones.
  • Linux kernel – The Linux kernel is a free Unix-like operating system kernel that was created by Linus Torvalds in 1991 and subsequently improved with the assistance of developers around the world.
  • Linux PC – A Linux PC (personal computer) is usually a microcomputer that uses Linux distribution software as its operating system and application software.
  • LIS: Laboratory Information System – Laboratory information system (LIS) is a class of software which handles storing information generated by laboratory processes. These systems often must interface with instruments and other information systems such as hospital information systems (HIS). An LIS is a highly configurable application which is customized to facilitate a wide variety of laboratory workflow models. Deciding on an LIS vendor is a major undertaking for all but the smallest labs.
  • LISP Programming Language – Lisp programming language (LISP), originally specified in 1958, is the second-oldest (only Fortran is older) high-level programming language in widespread use. LISP has changed a great deal since its early days, and a number of dialects have existed over its history. Today, the most widely-known general-purpose Lisp dialects are Common Lisp and Scheme. Lisp was originally created as a practical mathematical notation for computer programs, based on Alonzo Church’s lambda calculus. It quickly became the favored programming language for artificial intelligence research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, object-oriented programming, and the self-hosting compiler.
  • Live Variable Analysis – Live variable analysis is performed by computer program compilers to calculate for each program point the variables that may be potentially read afterwards before their next written update.
  • LiveCD – LiveCD is an operating system distribution that is executed upon boot using a CD-ROM, without installation on a hard drive. It is one type of LiveDistro using CD-ROM as the media.
  • LiveDistro – LiveDistro is a generic term for an operating system distribution that is executed upon boot, without installation on a hard drive. Typically, it is stored on bootable media such as a CD-ROM (Live CD), DVD (Live DVD), USB Flash Drive, among others.
  • LMS: Learning Management System – Learning Management System (LMS) is a software package, that enables the management and delivery of learning content and resources to students. Most LMS systems are web-based to facilitate “anytime, anywhere” access to learning content and administration. At a minimum, the LMS usually allows for student registration, the delivery and tracking of e-learning courses and content, and testing, and may also allow for the management of instructor-led training classes. In the most comprehensive of LMSs, one may find tools such as competency management, skills-gap analysis, succession planning, certifications, virtual live classes, and resource allocation (venues, rooms, textbooks, instructors, etc.). Most systems allow for learners self-service, facilitating self-enrollment, and access to courses.
  • LNO: Loop Nest Optimization – Loop nest optimization (LNO) is a special case of loop transformation which deals with nested loops that makes possible large reductions in the cache bandwidth necessary for some pervasive algorithms.
  • Loader Program – Loader program is an operating system utility that performs the functions of a linker program and then immediately schedules the resulting executable program for action in the form of a memory image, without necessarily saving the program as an executable file. Loader programs are useful for prototyping, testing, and one-off applications.
  • Locator Program – Locator program is a type of a software development tool that assigns physical addresses to a relocatable program. This is the last step in preparing software for execution by an embedded system. The resulting file is called an executable. In some cases, the locator’s functionality is built into the linker or loader, which performs the location step.
  • Logic Programming – Logic programming (sometimes called logical programming) is programming that makes use of pattern-directed invocation of procedures from assertions and goals. The first logic programming language was Planner which featured pattern-directed invocation of procedural plans from both assertions and goals. In order to cope with the very limited memory systems that were available when it was developed, Planner used backtracking control structure so that only one possible computation path had to be stored at a time. Subsequently, Prolog was developed as a simplification of Planner that had pattern-directed invocation only from goals (also based on backtracking). From Planner there developed the programming languages QA-4, Popler, Conniver, and QLISP. The programming languages Mercury, Visual Prolog, Oz and Fril developed from Prolog. There are also concurrent logic programming languages (not based on backtracking) derived from Planner (e.g., Ether) and derived from Prolog.
  • Loop Fission – Loop fission is a compiler optimization technique attempting to break a loop into multiple loops over the same index range but each taking only a part of the loop’s body. The goal is to break down large loop body into smaller ones to achieve better data locality. It is the reverse action to loop fusion.
  • Loop Fusion – Loop fusion is a technique for compiler optimization and loop transformation, which replaces multiple loops with a single one. It is the reverse action to loop fission.
  • Loop Interchange – Loop interchange, a compiler optimization technique, is the process of exchanging the order of two iteration variables. One major purpose of loop interchange is to improve the cache performance for accessing array elements. Cache misses occur if the contiguously accessed array elements within the loop come from a different cache line. Loop interchange can help prevent this. The effectiveness of loop interchange depends on and must be considered in light of the cache model used by the underlying hardware and the array model used by the compiler.
  • Loop Inversion – Loop inversion is a technique in compiler optimization, particularly in loop transformation. This technique changes a standard while loop into a do/while (a.k.a. repeat/until) loop wrapped in an if conditional, reducing the number of jumps by two, for cases when the loop is executed. Doing so duplicates the condition check (increasing the size of the code) but is more efficient because jumps usually cause a pipeline stall. Additionally, if the initial condition is known at compile-time and is known to be side-effect-free, the “if” guard can be skipped.
  • Loop Optimization – Loop optimization refers to the process in computer compiling to optimize loops in the programs. Most execution time of a scientific program is spent on loops. Thus a lot of compiler analysis and optimization techniques have been developed to make the execution of loops faster.
  • Loop Splitting – Loop splitting, also known as loop peeling, is a compiler optimization technique. It attempts to simplify a loop or eliminate dependencies by breaking it into multiple loops which have the same bodies but iterate over different contiguous portions of the index range.
  • Loop Tiling – Loop tiling, also known as loop blocking, is a loop optimization used by compilers to make the execution of certain types of loops more efficient. Loop tiling partitions a loop’s iteration space into smaller chunks or blocks, so as to help ensure that data used in a loop stays in the cache until it is reused. The partitioning of loop iteration space leads to partitioning of large array into smaller blocks, thus fitting accessed array elements into cache size, enhancing cache reuse and eliminating cache size requirements.
  • Loop Transformation – Loop transformation refers to a group of loop optimization techniques in computer programming and compiling, which plays an important role in improving cache performance and effective use of parallel processing capabilities. Common loop transformations include: – loop interchange – loop splitting/Loop peeling – loop fusion – loop fission – loop unrolling – loop tiling/loop blocking – loop skewing – loop inversion – loop-invariant code motion – vectorization – parallelization
  • Loop Unswitching – Loop unswitching is a compiler optimization technique. It moves a conditional inside a loop outside of it by duplicating the loop’s body, and placing a version of it inside each of the “if and else” clauses of the conditional. This can improve the parallization of the loop. Since modern processors can operate fast on vectors this increases the speed.
  • Loop Unwinding – Loop unwinding, also known as loop unrolling, is a technique for optimizing parts of computer programs. The idea is to save time by reducing the number of overhead instructions that the computer has to execute in a loop, and thus improving the cache hit rate and reducing branching. To achieve this, the instructions that are called in multiple iterations of the loop are combined into a single iteration. This will speed up the program if the overhead instructions of the loop impair performance significantly.
  • Loop-Invariant Code Motion – Loop-invariant code motion is a compiler optimization technique which performs loop-invariant code movement automatically to improve execution speed. Loop-invariant code in an imperative programming language consists of statements which could be moved to before the loop (if the loop always terminates), or after the loop, without affecting the semantics of the program. As a result, it is executed less often.
  • Low-Level Language – Low-level programming language is a type of computer language that provides little or no abstraction from a computer’s microprocessor. The word “low” refers to the small or nonexistent amount of abstraction between the language and machine language, it is therefore often described as machine-oriented languages. They cannot easily be converted to run on a computer with a different central processing unit, and they are relatively difficult to learn because a detailed knowledge of the internal working of the computer is required. Since they must be translated into machine code by an assembler program, low-level languages are also called assembly languages. “High-level” and “low-level” are also used relatively, so a Java programmer might consider C to be a comparatively low-level language.
  • LSM: Linux Software Map – Linux Software Map (LSM) is a standard text format for describing Linux software. LSM for a program is a single text document, named software_package_name.lsm. An LSM begins with Begin4 and ends with End. It has one field on each line. Field name is separated from value by a “: “. Mandatory fields are Title, Version, Entered-date, Description, Author and Primary-site.
  • LURCH – LURCH is a software design debugging tool that uses a nondeterministic algorithm to quickly explore the reachable states of a software model. By performing a partial and random search, LURCH looks for faults in the model and reports the pathways leading to the faults.
  • LWP: Light-Weight Process – In computer operating systems, a light-weight process (LWP), confusingly known as a kernel thread, is a means of achieving multitasking. In contrast to a user thread, which is handled at the application level, a light-weight process is scheduled by the kernel. For this reason, they are generally preferred over a userland thread implementation whenever possible, as there is usually much less overhead. LWP is a single-threaded sub-process which, unlike a thread, has its own process identifier and may also differ in its inheritance and controlling features.
  • LZO: Lempel-Ziv-Oberhumer – Lempel-Ziv-Oberhumer (LZO) is a data compression algorithm that is focused on decompression speed. The algorithm is lossless and the source is thread safe. A free software tool which implements the LZO algorithm is lzop. The original library was written in ANSI C, and it has been made available under the GNU General Public License. Versions of LZO are available for the Perl, Python and Java languages.

M

  • Mac OS X – Mac OS X is the tenth and the latest version of the Macintosh operating system, and is designed and developed by Apple Computer to run on their Macintosh line of personal computers. Mac OS X is built on Darwin, an open source Unix-like environment which is based on the BSD source tree, and the Mach microkernel.
  • Mac OS: Macintosh Operating System – Macintosh operating system (Mac OS). is a series of graphical user interface-based operating systems developed by Apple Computer for their Macintosh line of computer systems. It was first introduced in 1984 with the original Macintosh 128K. Earlier versions of the Mac OS were compatible only with Motorola 68000-based Macintoshes, while later versions were also compatible with the PowerPC (PPC) architecture. Most recently, Mac OS X has become compatible with Intel’s PC CPU architecture.
  • Machine Code – Machine code, also known as machine language, is a system of instructions and data directly understandable by computer central processing unit. Every CPU model has its own machine code, or instruction set, although there is considerable overlap between some. If CPU A understands the full language of CPU B it is said that CPU A is compatible with B. CPU B may not be compatible with CPU A, as A may know a few codes that B does not.
  • Machine Code Instruction – Machine code instruction are the “words” of a machine or a computer. Instructions are patterns of bits with different patterns corresponding to different commands to the machine. Every CPU model has its own machine code, or instruction set, although there is considerable overlap between some.
  • Machine Language – Machine language, also known as machine code, is the lowest-level language (except for computers that utilize programmable microcode) directly understandable by a computer central processing unit (CPU). While easily understood by computers, machine languages are very hard to understand for humans because they consist entirely of numbers. Programmers, therefore, use either a high-level programming language or an assembly language. An assembly language contains the same instructions as a machine language, but the instructions and variables have names instead of being just numbers.
  • Macro – A macro in computer science is an abstraction, that defines how a certain input pattern is replaced by an output pattern according to a defined set of rules. There are three broad categories of macros, and each takes a different kind of input pattern to produce a different kind of output pattern: Programming macros, Application Macros and Keyboard macros.
  • Macro Language – A macro language is a programming language in which all or most computation is done by expanding macros. Macro languages are not widely used for general-purpose programming, but are common in text processing applications, for example, C preprocessor and Internet Macros (iOpus).
  • Macro-instruction – Macro-instruction is an instruction that defines a macro. In assembly language, MACRO and ENDM are examples that define the beginning and end of a macro. In C, the #DEFINE statement is used.
  • Macromedia Flash – Macromedia Flash, or simply Flash, refers to both a multimedia authoring program and the Flash Player, written and distributed by Macromedia (now part of Adobe Systems). Flash utilizes vector and raster graphics, a native scripting language called ActionScript and bidirectional streaming of video and audio.
  • MacsBug: Motorola Advanced Computer Systems Debugger – Motorola Advanced Computer Systems Debugger (MacsBug) is a low-level debugger for the Motorola 68000 family of processors specifically designed for the Apple Macintosh.
  • Magnolia CMS – Magnolia CMS is a free, open source, J2EE deployable content management system (CMS), that is developed by obinary and a growing community of international contributors. It uses the standard API for java content repositories (JCR) to access its content. It is currently available in many languages including Russian, Chinese, English, French, German and Spanish. Magnolia CMS uses the JSR-170 standard API to access its content. It has an easy to use web-browser interface, a clear API and a useful custom tag library for easy templating in JSP and Servlets.
  • MakeRefMovie – MakeRefMovie is a free, downloadable software from Apple Computers that creates RefMovies (files that point to the location of a video file) for QuickTime streaming video. Versions of the application are also available for Windows systems. Reference Movies can also be created from the command-line with the free tool XMLtoRefMovie.
  • Mambo CMS – Mambo CMS, formerly named Mambo Open Source(MOS), is an open source content management system (CMS) for creating and managing websites through a simple web interface. Mambo also includes more advanced features such as page-caching to improve performance on busy sites, advanced templating techniques, and a fairly robust API. It can also automate many tasks such as web indexing for static pages. Mambo can provide RSS feeds, printable versions of pages, news flashes, blogs, forums, polls, calendars, website searching, language internationalization, and other possibilities.
  • MASM: Microsoft Macro Assembler – The Microsoft Macro Assembler (MASM) is an assembler for the x86 family of microprocessors, originally produced Microsoft MS-DOS operating system. It supported a wide variety of macro facilities and structured programming idioms, including high-level constructions for looping, procedure calls and alternation (therefore, MASM is an example of a high-level assembler). Later versions added the capability of producing programs for the Windows operating systems that were released to follow on from MS-DOS. MASM is one of the few Microsoft development tools for which there was no separate 16-bit and 32-bit versions.
  • MCAD: Microsoft Certified Application Developer – The Microsoft Certified Application Developer (MCAD) certification is the entry-level programming certification. The curriculum covers many topics related to the Microsoft .NET development platform. MCAD certification is for professionals who use Microsoft technologies to develop and maintain department-level applications, components, Web or desktop clients, or back-end data services.
  • MCDBA:  Microsoft Certified Database Administrator – The Microsoft Certified Database Administrator (MCDBA) credential is for database administrators, who implement and administer Microsoft SQL Server databases. The certification is appropriate for individuals who derive physical database designs, develop logical data models, create physical databases, create data services by using Transact-SQL, manage and maintain databases, configure and manage security, monitor and optimize databases, and install and configure SQL Server. This certification requires passing three core exams, and one elective exam.
  • MCDST: Microsoft Certified Desktop Support Technician – Microsoft Certified Desktop Support Technician (MCDST) is a lower-level credential that demonstrates a technician can competently support end users and troubleshoot desktop environments running on Microsoft Windows. MCDST candidates are required to pass two core exams. Elective exams are not required. Complete course lasts 50 hours.
  • MCP: Microsoft Certified Professional – Microsoft Certified Professional (MCP) refers to both an individual Microsoft certification and a broader professional certification program. To be an MCP, candidates must complete any one exam within the program. The MCP program offers multiple certifications, based on different areas of technical expertise. To attain these certifications, a candidate must pass a series of exams within the program. Popular certifications are MCP, Microsoft Certified System Engineer (MCSE) and Microsoft Certified Database Administrator (MCDBA).
  • MCSA: Microsoft Certified Systems Administrator – Microsoft Certified Systems Administrator (MCSA) certification certifies a user’s knowledge in system administration of Microsoft Windows operating systems and is generally simpler than, but not a subset of, the MCSE. The Windows Server 2003 MCSA is achieved upon passing 2 networking system exams, a client operating system exam (generally Microsoft Windows XP), and an elective exam. The Windows Server 2000 MCSA title is granted after taking 3 core exams and one elective. Although the MCSA isn’t a subset of the MCSE, it is possible to gain an MCSA on the way to an MCSE without doing any exams that are extraneous to the MCSE on Windows 2000.
  • MCSD: Microsoft Certified Solution Developer – Microsoft Certified Solution Developer (MCSD) certification is the highest level programming certification offered by Microsoft. To fulfill the requirements of the certification, a total of five exams (four core exams, one elective exam) must be passed. Some of the core exams are also requirements for the MCAD. Microsoft has declared that this certification will be focused towards the needs of developers using .NET Framework 1.0 and 1.1 versions. Developers using .NET Framework 2.0 and Microsoft Visual Studio 2005 are expected to consider obtaining Microsoft Certified Technology Specialist (MCTS) and Microsoft Certified Professional Developer (MCPD) certifications.
  • MCSE: Microsoft Certified Systems Engineer – Microsoft Certified Systems Engineer (MCSE) qualifies an individual of being able to analyze the business requirements for business solutions and design and implement the infrastructure required. As of 2006, the MCSE is available for two different products, Windows 2000 and Windows Server 2003, each requiring a different set of exams. For the MCSE 2003, candidates must pass six Core exams design exams (Four networking exams, one client operating system and one design exam) and one elective exam, for a total of seven exams. For the MCSE 2000, a candidate needs to pass five Core Exams (Four operating system exams, one design exam) and two electives.
  • MCT: Microsoft Certified Trainer – Microsoft Certified Trainer (MCT) certification is for individuals who intend to train users wanting to obtain any of the other certifications.
  • MDX: Multidimensional Expressions – Multi-dimensional Expressions (MDX) is a query language for OLAP databases, which much like SQL is a query language for relational databases. It is also a calculation language, with syntax similar to spreadsheet formulas. MDX was first introduced as part of the OLEDB for OLAP specification in 1997 from Microsoft. The specification was quickly followed by the commercial release of Microsoft OLAP Services 7.0 in 1998, and later by Microsoft Analysis Services. While it was not an open standard, but rather a Microsoft-owned specification, it was adopted by a wide range of OLAP vendors.
  • Media Cleaner Pro – Media Cleaner Pro is a piece of software used to convert and optimize video and audio files for the Internet, DVD, CD-ROM, PowerPoint presentations, and other digital imagery.
  • Memory Management – Memory management is a technique used by the Mac OS to optimize the use of memory. The original problem for the designers of the Macintosh was how to make optimum use of the 128 kB of RAM that the machine was equipped with. Since at that time the machine could only run one application program at a time, and there was no permanent secondary storage, the designers implemented a simple scheme which worked well with those particular constraints. However, that design choice did not scale well with the development of the machine, creating various difficulties for both programmers and users. This technique is one of the key areas addressed by the change to Mac OS X.
  • Memwatch – Memwatch is a free programming tool for memory leak detection in C. It is highly portable ANSI C code which will run on just about any hardware that has a C compiler. While it is primarily intended to detect and diagnose memory leaks, it can also be used to analyze a programs memory usage and provides logging facilities.
  • Metadata – Metadata is data that describe other data. Metadata refers to information about data itself — perhaps the origin, size, formatting or other characteristics of a data item. Metadata is of special interest in various fields of computer science, e. g. information retrieval and the semantic web. In the database field, metadata is essential to understanding and interpreting the contents of a data warehouse. Meta tags, a type of metadata, are optional elements defined in the header portion of an HTML or PHP file for web pages.
  • MicroBSD – MicroBSD is a fork of the UNIX-like BSD operating system descendant OpenBSD 3.0, begun in July 2002. The project’s objective to produce a fully secure, complete system, but with a small footprint. The first phase of its development was aborted, but it has been resumed by a new group of developers.
  • Microcode – Microcode, also known as microprogram, refers to the instruction set of a CPU as a sequence of microcode instructions (microinstructions), each of which typically consists of a number of bit fields and the address of the next microinstruction to execute. Microcode is the translation layer between machine instructions and the elementary operations of a computer. Microcode is stored in ROM and allows the addition of new machine instructions without requiring that they be designed into electronic circuits when new instructions are needed. Several microinstructions will usually be required to fetch, decode and execute each machine code instruction. The elements composing the microprogram/microcode exist on a lower conceptual level than the more familiar assembler instructions. Each element is differentiated by the “micro” prefix to avoid confusion: microprogram, microcode, microinstruction, microassembler, etc.
  • Microinstruction: Micro code Instruction – Microcode Instructions (microinstructions) are very basic low-level instructions in a computer CPU, which are used to manipulate bit streams and byte ordering. Microinstructions can control data flow and instruction-execution sequencing in a processor at a more fundamental level than machine instructions. Typically, a series of microinstructions is necessary to perform an individual machine instruction.
  • Microkernel – A microkernel is a minimal computer operating system kernel providing only basic operating system services (system calls), while other services are provided by user-space programs called servers. Commonly, microkernels provide services such as address space management, thread management, and inter-process communication, but not networking or display for example.
  • Micro-programming – Micro-programming, also known as micro-coding, refers to the development of micro-programs or micro-codes, which are the instruction set of a CPU as a sequence of micro-code instructions (micro-instructions). Micro-programming allows CPU design engineers to write a micro-program to implement a machine instruction set. Even in the late stage of design process, micro-code could easily be changed. This greatly facilitated CPU design and led to more complex instruction sets. Architectures using micro-programming included the IBM System/360 and DEC VAX, the instruction sets of which were implemented by complex microprograms. The approach of using increasingly complex micro-code-implemented instruction sets was later called CISC.
  • Microsoft .Net – Microsoft .Net is an umbrella term that applies to a collection of products and technologies from Microsoft. All have in common a dependence on the Microsoft .NET Framework, a component of the Windows operating system.
  • Microsoft .Net Framework – The Microsoft .NET Framework is a software component which can be added to the Microsoft Windows operating system. It provides a large body of pre-coded solutions to common program requirements, and manages the execution of programs written specifically for the framework. The .NET Framework is a key Microsoft offering, and is intended to be used by most new applications created for the Windows platform.
  • Microsoft Access – Microsoft Access is a relational database management system from Microsoft, packaged with Microsoft Office Professional which combines the Jet relational database engine with a graphical interface. The development environment provides productivity-enhancing features for both advanced developers and beginning users. It can use data stored in Access/Jet, SQL Server, Oracle, or any ODBC-compliant data container.
  • Microsoft SQL Server – Microsoft SQL Server is a relational database management system produced by Microsoft. It supports a super-set of Structured Query Language SQL, the most common database language. It is commonly used by businesses for small to medium sized databases, and in the past 5 years large enterprise databases, and competes with other relational database products for this market segment.
  • Microsoft Systems Management Server – Microsoft Systems Management Server (SMS) is a Microsoft systems management software product for managing large groups of Windows-based computer systems. It provides remote control, patch management, software distribution, and hardware/software inventory.
  • Microsoft Visual Studio Debugger – The Microsoft Visual Studio Debugger is a debugger tool that ships along with all versions of Visual Studio .NET. This debugger owes much of its feel and functionality to CodeView, a standalone, text-based debugger that shipped with Microsoft Visual C++ version 5.0 and earlier.
  • Microsoft Windows – Microsoft Windows is a family of operating systems for personal computers, developed and distributed by Microsoft. Windows provides a graphical user interface (GUI), virtual memory management, multitasking, and support for many peripheral devices. Windows can run on several type of platforms such as servers, embedded devices and, most typically, on personal computers.
  • MicroStation – MicroStation is the platform architectural and engineering software package developed by Bentley Systems, to generate 2D/3D vector graphic objects and elements. Its native format is the DGN (DesiGN file) format, though it can also read and write a variety of standard CAD formats including AutoCAD’s DWG and DXF as well as produce media output in such forms as rendered images (JPEG and BMP), animations (AVI), 3D web pages in Virtual Reality Modeling Language, and Adobe PDF.
  • Middleware – Middleware is a type of computer software that connects software components or applications. It is used most often to support complex, distributed applications. It includes web servers, application servers, content management systems, and similar tools that support application development and delivery. Middleware is especially integral to modern information based on XML, SOAP, Web services, and service-oriented architecture.
  • MinGW Developer Studio – MinGW Developer Studio is a freeware IDE (integrated development environment) for programming with C and its derivative, C++. MinGW Developer Studio is bundled with the open source GCC compiler, MinGW and the wxWidgets GUI library, offering a complete solution for both console and GUI programming with C/C++. The interfaces and functionalities are almost identical to Visual C++ 6.0, with added features such as code folding.
  • MinGW: Minimalist GNU for Windows – Minimalist GNU for Windows (MinGW or Mingw32) is a software port of the GNU toolchain to the Win32 platform. It was originally a fork of Cygwin. Unlike Cygwin it does not require a compatibility layer DLL nor does its license require that applications developed with it are released under the GPL.
  • Minix – MINIX is an open source, Unix-like operating system based on a microkernel architecture. Andrew S. Tanenbaum wrote the operating system to be used for educational purposes. Early Linux kernel development was done on a MINIX host system, which led to Linux inheriting various features from MINIX, such as the MINIX disk filesystem format.
  • MIS: Management Information systems – Management Information systems(MIS), also known as information technology management, generally refers to the application of information technology to business problems. In academic field, the study of information systems is usually a commerce and business administration discipline, and frequently involves software engineering, but also distinguishes itself by concentrating on the integration of computer systems with the aims of the organization. The area of study should not be confused with computer science which is more theoretical in nature and deals mainly with software creation, and not with computer engineering, which focuses more on the design of computer hardware. Very often, companies have a MIS department to take care of daily management and administration of the company’s information infrastructure.
  • MISRA C – MISRA C is a set of coding guidelines for the programming language C and later for C++ with extensions. The C guidelines are intended to be applied during the development of software used in safety-critical applications. Although written for use by the automotive industry, the problems addressed by the guidelines also occur in software produced for other industries and some development groups in these industries (e.g., medical device manufacturers) have adopted the MISRA C guidelines.
  • MISRA: Motor Industry Software Reliability Association – Motor Industry Software Reliability Association (MISRA), is a collaboration between vehicle manufacturers, component suppliers and engineering consultants which seek to promote best practice in developing safety-related electronic systems in road vehicles. MISRA has developed a set of coding guidelines, called MISRA C, for the programming language C and then for C++.
  • MIT License: Massachusetts Institute of Technology License – Massachusetts Institute of Technology (MIT) License, originated at the MIT, is a type of licence for the use of certain types of computer software. It allows reuse for open source and proprietary software. Many groups use the MIT license for their own software, such as expat, MetaKit, and the X Window System.
  • Module – In computer software programming, a module is a software entity that groups a set of (typically cohesive) subprograms/routines and data structures. Modules are units that can be compiled separately, which makes them reusable and allows multiple programmers to work on different modules simultaneously. Modules also promote modularity and encapsulation (i.e. information hiding), both of which can make complex programs easier to understand. Programs are composed of one or more independently developed modules that are not combined until the program is linked.
  • Monad – Monad, Latin for unit, is a technique from category theory which has been adopted as a way of dealing with state in functional programming languages, which make use of monads to structure programs which include operations that must be executed in a specific order. The primary uses of monads in functional programming are to express input/output operations and changes in state without using language features that introduce side effects. A monad has three components: a means of augmenting an existing type, a means of creating a default value of this new type from a value of the original type, and a replacement for the basic application operator for the old type that works with the new type.
  • Monotone – Monotone is an open source software tool for revision control. Monotone tracks revisions to files, groups sets of revisions into changesets, and tracks history across renames. The design principle is distributed operation making heavy use of cryptographic primitives to track file revisions (via the SHA1 secure hash) and to authenticate user actions (via RSA cryptographic signatures). Each participant maintains their own revision history store in a local SQLite database. Monotone is especially strong in its support of a diverge/merge workflow, which it achieves in part by always allowing “commit” before merge.
  • Moodle – Moodle is an open source e-learning platform with a course management system (CMS). Such e-learning systems are sometimes also called Learning Management Systems (LMS), Virtual Learning Environments (VLE), education via computer-mediated communication (CMC) or Online Education.
  • MOS: Microsoft Office Specialist – Microsoft Office Specialist (MOS), previously named Microsoft Office User Specialist (MOUS) is a certification for using the Microsoft Office suite of business applications. While listed under the MCP Certification Programs, it is not officially an MCP Certification. The MOS exams are managed by a third party company, Certiport.
  • Mosaic – Mosaic is a World Wide Web browser and Gopher client developed at the National Center for Supercomputing Applications (NCSA) beginning in 1992, and officially ending on January 7, 1997. NCSA Mosaic was originally designed and programmed for Unix’s X Window System. Marc Andreessen, the leader of the team that developed Mosaic, left NCSA and, with four other former students and staff of the University of Illinois, started Mosaic Communications Corporation. Mosaic Communications eventually became Netscape Communications Corporation, producing Netscape Navigator. Spyglass licensed the technology and trademarks from NCSA for producing their own web browser but never used any of the NCSA Mosaic source code. Spyglass Mosaic was later licensed by Microsoft, and it was modified and renamed to Internet Explorer.
  • Moto Programming Language – Moto Programming Language(Moto) is an Open Source server-side language much like PHP or JSP, developed by David Hakim. The primary difference between Moto and server-side scripting languages is that Moto pages can run interpreted (like PHP) or be natively compiled into dynamically loadable Apache modules. Moto has a type checking phase so programmers see more errors up front. Programmers can define classes and functions in Moto and make use of powerful exception handling. Moto comes with a full suite of objects and functions for state and session management, MySQL and PostgreSQL database connectivity, and a slew of utility classes. There is also an included interface definition language for exposing C functions to Moto. All object allocation occurs in a shared memory segment, so maintaining objects in memory between page views is a snap.
  • MOV: Merchant of Venice – Merchant of Venice (MOV), in computer programming, is a stock market trading and technic analysis program to manage graphs and portfolios. It has an internal language which supports all the most important econometric functions (RSI, Bollinger Bands, Momentum, Moving Averages, ecc.). It supports artificial intelligence techniques (Genetic Programming, Genetic Algorithm, …).
  • Mozbot – Mozbot is an IRC bot written in the Perl programming language under the MPL license, originally authored by Ian Hickson. Mozbot has a modular design, allowing for extension modules to be incorporated at runtime.
  • Mozilla – Historically, Mozilla had been used internally as a codename for the Netscape Navigator web browser from its beginning. It was a contraction of Mosaic killer. Mozilla is sometimes used to refer to the Mozilla Organization, a free software / open source software project that was founded in order to create the next-generation Internet suite for Netscape. On August 3, 2005, Mozilla Foundation announced the creation of Mozilla Corporation, a wholly-owned for-profit taxable subsidiary of Mozilla Foundation, that will focus on delivering Firefox and Thunderbird to end users.
  • Mozilla Application Object Model (AOM) – The Mozilla Application Object Model (AOM) is an application programming interface for manipulating the application using JavaScript. It is similar to Document Object Model, but instead of being document-centric, it is application-centric. For example, opening web services, saving files, etc.
  • Mozilla Firefox – Mozilla Firefox, or simply known as Firefox, is a free, open source, cross-platform, graphical web browser developed by the Mozilla Corporation and hundreds of volunteers. Firefox includes an integrated pop-up blocker, tabbed browsing, live bookmarks, support for open standards, and an extension mechanism for adding functionality. Although other browsers have some of these features, Firefox became the first such browser to include them all and achieve wide adoption.
  • Mozilla Public License – The Mozilla Public License is an open source and free software license. Version 1.0 was developed by Mitchell Baker when she worked as a lawyer at Netscape Communications Corporation and version 1.1 at the Mozilla Foundation.
  • Mp3splt – Mp3splt is a free(GNU GPL) digital audio splitter that runs on GNU/Linux, Mac OS X, and Microsoft Windows operating systems. The graphical user interface for the splitter is called mp3splt-gtk and is made with gtk2. The mp3splt project has also a library created from mp3splt, called libmp3splt and a graphical user interface called mp3splt-gtk that uses that library.
  • Mp3splt-gtk – Mp3splt-gtk is the GUI of Mp3splt, a free(GNU GPL) digital audio splitter that runs on GNU/Linux, and Microsoft Windows operating systems. The graphical user interface uses libmp3splt (based on mp3splt) and is made with GTK+ 2.
  • MPS: Memory Pool System – The Memory Pool System (MPS) is a flexible and modular memory management system that was developed by Harlequin Inc. and now an open source software to support both their ScriptWorks PostScript RIP, and their Harlequin Dylan compiler and IDE for the Dylan programming language. As such it was designed to support a wide range of requirements from high-speed manual memory management, to complex garbage collection with many different types of reference.
  • MS-DOS: MicroSoft Disk Operating System – MicroSoft Disk Operating System (MS-DOS) is an operating system by Microsoft. It was the most widely used DOS for the PC compatible platform during the 1980s. It has gradually been replaced by the Windows operating system. MS-DOS is a single user operating system that runs one program at a time and is limited to working with one megabyte of memory, 640 kilobytes of which is usable for the application program. Special add-on EMS memory boards allow EMS-compliant software to exceed the 1Mbyte limit. Add-ons to DOS, such as Microsoft Windows and DESQview, take advantage of EMS and allow the user to have multiple applications loaded at once and switch between them.
  • mSQL: Mini SQL – Mini SQL (mSQL) is a lightweight client/server database developed by Hughes Technologies in 1994. mSQL filled a gap that existed between the embedded desktop databases like Microsoft Access and the enterprise-level commercial databases such as Oracle and DB2. It was popular database of choice for open source developers in the middle of 90′. By 1996, development on mSQL began to stagnate and MySQL arose to fill that void. By 1999, MySQL had gone well beyond mSQL in popularity and today mSQL has less visibility.
  • mSQL-JDBC – mSQL-JDBC is an Open Source Type IV Java Database Connectivity (JDBC) driver for the mSQL database engine created by George Reese. It is written in the Java programming language and uses the native mSQL network protocols to talk to mSQL. The driver supports as much of the JDBC specification as the mSQL database will support, but development on the driver basically ceased in 1997. The driver therefore does not support the most recent releases (3.0 and above) of mSQL.
  • MSYS: Minimal SYStem – Minimal SYStem(MSYS), a part of MinGW, was created out of a long-lived desire to provide the MinGW community a Minimal SYStem, with which a configure script could be executed. MSYS provides POSIX/Bourne configure scripts the ability to execute and create a Makefile used by make. MSYS versions 1.0.8 and later include only the i386 binary distribution, which will run on any 32-bit Intel-compatible processor.
  • MUI: Magic User Interface – The Magic User Interface(MUI) is an object oriented system by Stefan Stuntz to generate and maintain graphical user interfaces. The MUI was written for AmigaOS and gained popularity amongst both programmers and users. It has been ported to PowerPC processors and adopted as the default GUI toolkit of the MorphOS operating system. The MUI application programmer interface has been cloned by the Zune toolkit used in the Amiga Research Operating System.
  • Multiple Perspective Software Development – Multiple perspective software development refers to an approach to software development which requires communication and collaboration between experts in a number of different fields.
  • Multiprocessing – Multiprocessing typically refers to the use of more than one processor (CPU) in a single computer system. So-called multiprocessor systems usually have a common memory space through which all of the processors can communicate and share data. Multiprocessing sometimes refers to the execution of multiple concurrent software processes in a system as opposed to a single process at any one instant.
  • Multitasking – In computing, multitasking is technique used in an operating system for sharing a single processor between several independent jobs. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for that task. Multitasking solves the problem by scheduling which task may be the one running at any given time, and when another waiting task gets a turn. The act of reassigning a CPU from one task to another one is called a context switch. When context switches occur frequently enough the illusion of parallelism is achieved. Even on computers with more than one CPU, multitasking allows many more tasks to be run than there are CPUs.
  • Multithreading – Multithreading typically refers to sharing a single CPU between multiple tasks (or “threads”) in a way designed to minimise the time required to switch threads. This is accomplished by sharing as much as possible of the program execution environment between the different threads so that very little state needs to be saved and restored when changing thread. Multiple threads can be executed in parallel on many computer systems. This multithreading generally occurs by time slicing, wherein a single processor switches between different threads–in which case the processing is not literally “simultaneous”, for the single processor is only really doing one thing at a time. On a multiprocessor system, threading can be achieved via multiprocessing, wherein different threads can run simultaneously on different processors.
  • MusE – MusE is a MIDI/Audio sequencer program with recording and editing capabilities written by Werner Schweer. MusE aims to be a complete multitrack virtual studio for Linux (it currently has no support under other platforms, due to its reliance on JACK and ALSA). It is published under the GNU General Public License.
  • MySQL – MySQL is a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS). MySQL is open source software available either under the GNU General Public License (GPL) or under other licenses when the GPL is inapplicable to the intended use.
  • Mystic BBS – Mystic BBS is a free (as in beer) bulletin board system software program written by the programmer James Coyle, better known by the pseudonym “g00r00″. Started in 1994, Mystic is the first DOS-based BBS softare programs to support a native telnet server. It has since been ported to Microsoft Windows, OS/2 and Linux.

N

  • Nagware – Nagware, also known as annoyware, is a type of shareware software. Other types of shareware include demoware, crippleware, freeware, adware, and even spyware. Nagware reminds or nags the user to register it by paying a fee. It usually does this by popping up a message when the user starts the program or, worse, intermittently while the user is using the application. These messages can appear as windows obscuring part of the screen or message boxes that can quickly be closed.
  • Name Binding – In programming languages, name binding refers to the association of values with identifiers. An identifier bound to a value is said to reference that value. Since computers themselves have no notion of identifiers, there is no binding at the machine language level name binding is an abstraction provided by programming languages. Binding is intimately connected with scoping, as scope determines when binding occurs.
  • Nanika – Nanika is a desktop accessory application developed by Sagawa Toyoaki. Nanika is composed of three parts: ‘materia’, which is the basic foundation of Nanika system; ‘shell’, which can be described as a skin; ‘ghost’, which is a pseudo-AI engine. Nanika is heavily influenced by Japanese anime, such as Kanon and Ghost in the Shell.
  • NanoCAD – NanoCAD is a Java applet that was intended to eventually evolve into a useful computer-aided design system for nanotechnology. While that goal has yet to come to fruition, NanoCAD has at least influenced the direction of more advanced projects such as OpenChem and Fungimol.
  • NASM: Netwide Assembler – Netwide Assembler(NASM) is a free software Intel x86 assembler. It can be used to write both 16-bit and 32-bit (IA-32) programs. 32-bit programs can be written for NASM in such a way that they are portable between any 32-bit x86 OSes, if the right libraries are used.
  • Natural Docs – Natural Docs is a multi-language documentation generator written in Perl and licensed under the GPL. It attempts to keep the comments written in source code just as readable as the generated documentation. It is written and maintained by Greg Valure.
  • Natural Language – Natural language refers to a language spoken or written by humans, as opposed to a language used to program or communicate with computers. Natural language understanding is one of the hardest problems of artificial intelligence due to the complexity, irregularity and diversity of human language and the philosophical problems of meaning.
  • NetBSD – NetBSD is a freely redistributable, open source version of the Unix-like BSD computer operating system. It was the second open source BSD variant to be formally released, after 386BSD, and continues to be actively developed. Noted for its portability and quality of design and implementation, it is often used in embedded systems and as a starting point for the porting of other operating systems to new architectures.
  • News Aggregator – A news aggregator refers to a system including software application, webpage or service that collects syndicated content using RSS and other XML feeds from weblogs and mainstream media sites. Aggregators improve upon the time and effort needed to regularly check websites of interest for updates, creating a unique information space or “personal newspaper.” An aggregator is able to subscribe to a feed, check for new content at user-determined intervals, and retrieve the content. The content is sometimes described as being “pulled” to the subscriber, as opposed to “pushed” with email or other channels. Unlike recipients of some “pushed” information, the aggregator user can easily unsubscribe from a feed.
  • NF: Normal Form – Normal Forms (NFs) are the structures and algorithms to normalize a relational database. One can only describe a database as having a normal form if the relationships between quantities have been rigorously defined. It is possible to use set theory to express this knowledge once a problem domain has been fully understood, but most database designers model the relationships in terms of an “idealized schema”.
  • NLP: Natural Language Processing – Natural language processing(NLP) refers to the computer understanding, analysis, manipulation, and/or generation of natural language. NLP is a subfield of artificial intelligence and linguistics. It studies the problems of automated generation and understanding of natural human languages. Natural language generation systems convert information from computer databases into normal-sounding human language, and natural language understanding systems convert samples of human language into more formal representations that are easier for computer programs to manipulate.
  • No-CD Crack – A No-CD crack is a special computer program used to play computer games without having to insert the CD-ROM.This act is a form of software cracking. No-CD cracks can be found on the Internet from many websites or other various filesharing networks.
  • Nodezilla – Nodezilla is a peer-to-peer network software written in C++ and Java, released under the GNU General Public License. Technically, Nodezilla is a secured, distributed and fault-tolerant routing system (aka Grid network). Its main purpose is to serve as a link for distributed services built on top of it (like chat, efficient video multicasting streaming, File Sharing, secured file store.
  • Non-code resource – Non-code resource is a resource containing the data structures on which the program operates, for example, ‘WIND’, ‘DLOG’, ‘DITL’, or ‘SIZE’ resources. The resource compiler Rez or a resource editor may be used to create non-code resources.
  • Non-compressed sound data – Non-compressed sound data is the sampled-sound data that has not been subjected to audio compression or that has been decompressed.
  • Nonlinear Programming – In mathematics, nonlinear programming (NLP) is the process of solving a system of equalities and inequalities over a set of unknown real variables, along with an objective function to be maximized or minimized.
  • Non-Printable Character – Non-Printable Character is a character that doesn’t have a corresponding character letter to its corresponding ASCII code. Examples would be the Linefeed, which is ASCII character code 10 decimal, the Carriage Return, which is 13 decimal, or the bell sound, which is decimal 7. On a PC, you can often add non-printable characters by holding down the Alt key, and typing in the decimal value. There are other character encoding schemes, but ASCII is the most prevalent.
  • Non-Proprietary Software – Non-proprietary software, the opposite of proprietary software, refers to the software that has no proprietary restrictions attached to it, particularly the restriction about the access to the source code. Proprietary software is software where the source code has not been made available, or it is protected by restrictive licensing clauses. Non-proprietary software is not a widely used term and has no generally accepted definition. It is sometimes used as an umbrella term for the many alternative terms for free software.Â
  • Nonrelocatable Block – Nonrelocatable block is a block whose location in the heap is fixed. This block can’t be moved during heap compaction or other memory operations.
  • NonStop SQL – NonStop SQL is a relational database product originally produced at Tandem Computers using the pioneering Ingres source code from University of California, Berkeley. NonStop is the “brand name” for Tandem’s suite of high-availabiliy products, a brand that survived Tandem’s takeover by Compaq, and today after Compaq’s takeover by HP.
  • Nonvolatile Register – Nonvolatile register is a register whose contents must be preserved across subroutine calls. If a routine changes the value of a nonvolatile register, it must save the old value on the stack before changing the register and restore that value before returning.
  • Normalization in Database – IIn relational databases, normalization is a process that eliminates redundancy, organizes data efficiently, reduces the potential for anomalies during data operations and improves data consistency. The formal classifications used for quantifying “how normalized” a relational database is are called normal forms.
  • Novell ZENworks – Novell ZENworks, a suite of software products developed and maintained by Novell, Inc. for computer systems management, aims to manage the entire lifecycle of servers, of desktop PCs (both Windows-based and Linux-based), of laptops, and of handheld devices (such as PDAs).
  • NPL: Netscape Public License – The Netscape Public License (NPL) is an open-source license, one of the licenses under which Mozilla is distributed. Its most notable feature is that it gives the original developer of Mozilla (Netscape, now a subsidiary of Time Warner), the right to distribute modifications made by other contributors under whatever terms it desires, including commercial terms, without granting similar rights to those other contributors in respect of the contribution of the original developer.
  • NuCalc – NuCalc, also known as Graphing Calculator, is the name of a computer software tool, made by the company Pacific Tech, capable of performing many graphing calculator functions. It can graph inequalities and vector fields, as well as functions in two, three, or four dimensions. It supports several different coordinate systems, and can solve equations. It is available for Mac OS (under the name Graphing Calculator) and Microsoft Windows.
  • Numerical Analysis – Numerical analysis is the study of algorithms for the problems of continuous mathematics (as distinguished from discrete mathematics). Some of the problems it deals with arise directly from the study of calculus; other areas of interest are real variable or complex variable questions, numerical linear algebra over the real or complex fields, the solution of differential equations, and other related problems arising in the physical sciences and engineering.

O

  • OATH: Object-Oriented Abstract Type Hierarchy – Object-oriented Abstract Type Hierarchy (OATH) is a class library for C++ from Texas Instruments.
  • Object – Generally, Object refers to any item that can be individually selected and manipulated. In computer programming such as object-oriented programming, an object is an individual unit of run-time data storage that is used as the basic building block of programs. These objects act on each other, as opposed to a traditional view in which a program may be seen as a collection of functions, or simply as a list of instructions to the computer. Each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent little machine or actor with a distinct role or responsibility.
  • Object code – Object code, also known as object file, is an intermediate representation of code generated by a compiler after it processes a source code file. Object files contain compact, pre-parsed code, often called binaries, that can be linked with other object files to generate a final executable or code library. An object file is mostly machine code that can be directly executed by a computer’s CPU. An object file contains not only the object code, but also relocation information that the linker uses to assemble multiple object files into an executable or library, program symbols (names of variables and functions), and debugging information.
  • Object Model – An object model is a subkind of data model with primitive concepts identity, state, encapsulation, operations/methods, messages, inheritance, polymorphism/overloading. An object model deals to the properties of objects in general, in a specific computer programming language, technology, notation or methodology that uses them. For example, the Java object model, the COM object model, or the object model of OMT. Such object models are usually defined using concepts such as class, message, inheritance, polymorphism, and encapsulation. There is an extensive literature on formalized object models as a subset of the formal semantics of programming languages.
  • Object Database – Object database refers to a type of database in which information is represented in the form of objects. The database management system for an object database is referred to variously as a ODBMS or OODBMS. Object database technologies becomes useful when: 1) a relational database becomes cumbersome to be used with complex data; 2) data is generally manipulated by application software written using object-oriented programming languages and tools such as C++, Java, Borland Delphi and C#, and the code needed to translate between this representation of the data, and the tuples of a relational database can be tedious to write and time-consuming to execute.
  • Object Pool – An object pool is a set of initialised objects that are kept ready to use, rather than allocated and destroyed on demand. A client of the pool will request an object from the pool and perform operations on the returned object. When the client has finished with an object, it returns it to the pool, rather than destroying it. It is a specific type of factory object. Object pooling can offer a significant performance boost; it is most effective in situations where the cost of initializing a class instance is high, the rate of instantiation of a class is high, and the number of instantiations in use at any one time is low.
  • Object-SQL Mapping – Object-SQL mapping, also known as object-relational mapping(O/RM), is a programming technique that links SQL databases to object-oriented language concepts, creating (in effect) a “virtual object database.” There are both free and commercial packages available that perform object-SQL mapping, although some programmers opt to code their own object-SQL mapping for their systems.
  • Objectworks – Objectworks is an object-oriented development environment developed by ParcPlace, available under Smalltalk and C++.
  • OD390 – OD390 is a Customer Information Control System (CICS) Web interperter from IBM used for application development involving web interfaces to DB2 tables.
  • ODA: Open Document Architecture – Open Document Architecture (ODA), formerly called Office Document Architecture, is an ISO standard that specifies how documents are represented and transmitted electronically.
  • ODBC: Open Database Connectivity – Open Database Connectivity (ODBC) is a common framework for accessing and altering the contents of databases. It allows developers to use the same coding conventions regardless of the actual database platform implemented on the backend. When a new database type is installed, administrators merely need to install an ODBC driver that supports that platform and existing ODBC software should function normally. ODBC provides a standard software API method for using database management systems (DBMS). The designer of ODBC aimed to make it independent of programming language, database system and operating system.
  • ODBMS: Object Database Management System – Object Database Management System (ODBMS), also known as Object Oriented Database Management System (OODBMS), refers to the database management system for an object database. Benchmarks between ODBMSs and relational DBMSs have shown that ODBMS can be clearly superior for certain kinds of tasks. The main reason for this is that many operations are performed using navigational rather than declarative interfaces, and navigational access to data is usually implemented very efficiently by following pointers. Critics of ODBMS, suggest that pointer-based techniques are optimized for very specific “search routes” or viewpoints. However, for general-purpose queries on the same information, pointer-based techniques will tend to be slower and more difficult to formulate than relational.
  • ODNT: Object Desktop Network – The Object Desktop Network (OD or ODNT) is a software subscription service created by Stardock. Launched in 1995 on OS/2, it transitioned in 1997/98 to the Windows platform. Subscribers typically download Object Desktop components across the Internet using Stardock Central, although CD snapshots are available on request. Once downloaded, users may use released versions of components forever.
  • O.K.I.: Open Knowledge Initiative – The Open Knowledge Initiative (O.K.I.) is an organization responsible for the specification of software interfaces comprising a Service Oriented Architecture (SOA) based on high level service definitions. The Open Knowledge Initiate was initially sponsored by the Andrew W. Mellon Foundation, Massachusetts Institute of Technology and the IMS Global Learning Consortium. O.K.I. has designed and published a suite of software interfaces known as Open Service Interface Definitions (OSIDs), each of which describes a logical computing service.
  • OLAP: Online Analytical Processing – Online Analytical Processing is a type of software that allows for the real-time analysis of data stored in a database. It is an approach to quickly provide the answer to analytical queries that are dimensional in nature. The OLAP server is normally a separate component that contains specialized algorithms and indexing tools to efficiently process data mining tasks with minimal impact on database performance. The typical applications of OLAP are in business reporting for sales, marketing, management reporting, business performance management (BPM), budgeting and forecasting, financial reporting and similar areas.
  • OLE: Object Linking and Embedding – Object Linking and Embedding(OLE), a technology developed by Microsoft, enables the creation of documents by incorporating elements created using different kinds of software. Object Linking and Embedding system allow objects from one application to be embedded within another (eg, taking an Excel spreadsheet and putting it into a Word document).
  • OLTP: Online Transaction Processing (OLTP) – Online Transaction Processing (or OLTP) is a class of program that facilitates and manages transaction-oriented applications, typically for data entry and retrieval transaction processing. OLTP also refers to computer processing in which the computer responds immediately to users’ requests. An automatic teller machine for a bank is an example of transaction processing. Probably the most widely installed OLTP product is IBM’s CICS (Customer Information Control System).
  • OMG: Object Management Group – Object Management Group (OMG) is a consortium, originally aimed at setting standards for distributed object-oriented systems, and now focused on modeling (programs, systems and business processes) as well as model-based standards in some 20 vertical markets. Founded in 1989 by eleven companies (including Hewlett-Packard Company, Apple Computer, American Airlines and Data General), OMG mobilized to create a cross-compatible distributed object standard. The goal was a common portable and interoperable object model with methods and data that work using all types of development environments on all types of platforms. At its founding, OMG set out to create the initial Common Object Request Broker Architecture (CORBA) standard which appeared in 1991.
  • OmniPage Professional – OmniPage Professional is a software used in conjunction with a scanner, to scan pictures or documents into the computer.
  • OO Language: Object-Oriented Language – Object-oriented language (OO language) is a type of computer programming language that allows or encourages, to some degree, object-oriented programming methods. OO languages can be grouped into several broad classes, determined by the extent to which they support all features and functionality of object-orientation and objects: classes, methods, polymorphism, inheritance, and reusability.
  • OODBMS: Object Oriented Database Management System – Object Oriented Database Management System (OODBMS), also known as Object Database Management System (ODBMS), refers to the database management system for an object database. Benchmarks between ODBMSs and relational DBMSs have shown that ODBMS can be clearly superior for certain kinds of tasks. The main reason for this is that many operations are performed using navigational rather than declarative interfaces, and navigational access to data is usually implemented very efficiently by following pointers. Critics of ODBMS, suggest that pointer-based techniques are optimized for very specific “search routes” or viewpoints. However, for general-purpose queries on the same information, pointer-based techniques will tend to be slower and more difficult to formulate than relational ones.
  • OOP: Object-Oriented Programming – Object-oriented programming(OOP) is a computer programming paradigm, in which writing programs in one of a class of programming languages and techniques based on the concept of an “object” which is a data structure (abstract data type) encapsulated with a set of routines, called “methods” which operate on the data. Operations on the data can only be performed via these methods, which are common to all objects which are instances of a particular “class”. Thus the interface to objects is well defined, and allows the code implementing the methods to be changed so long as the interface remains the same. The programming languages support object-oriented programming, including the Java platform and the .NET Framework.
  • Open Group – The Open Group is an industry consortium that sets vendor- and technology-neutral open standards for computing infrastructure. It was formed when X/Open merged with the Open Software Foundation in 1996. The Open Group is known for its experience in facilitating consensus to develop and evolve standards and best practices. It operates a number of certification programs, including certification for Common Operating Environment (COE) Platform, CORBA, Directory, IT Architects, Linux Standard Base, POSIX, Schools Interoperability Framework (SIF), TOGAF, UNIX, and Wireless Application Protocol (WAP). The Open Group is also the owner of the UNIX trademark.
  • OPEN LOOK – OPEN LOOK or OpenLook was an early graphical user interface (GUI) specification developed by Sun Microsystems and AT&T in the early 1990s for UNIX workstations. It had its origins in SunOS 2.1, SunView, and Sun’s Motorola 68000–based UNIX workstations.
  • Open64 – Open64 is an open source optimizing compiler for Intel Itanium platform. It was released by SGI company and now mostly serves as a research platform for compiler and computer architecture research groups.
  • OpenBSD – OpenBSD is a secure, freely available, multi-platform BSD-based Unix-like operating system. OpenBSD specialises in security and correctness. Its developers carefully and proactively audit the system’s code, which in turn contributes to the stability and security of OpenBSD. The project is led by Theo de Raadt from Calgary, Alberta, Canada.
  • OpenBSM – OpenBSM is an open source implementation of Sun’s Basic Security Module (BSM) Audit API and file format. BSM, which is a system used for auditing, describes a set of system call and library interfaces for managing audit records as well as a token stream file format that permits extensible and generalized audit trail processing.
  • OpenC++ – OpenC++ is a software tool to parse and analyze C++ source code. It uses a metaobject protocol (MOP) to provide services for language extensions.
  • OpenDoc – OpenDoc is a multi-platform software componentry framework standard for compound documents, inspired by the Xerox Star system and intended as an alternative to Microsoft’s Object Linking and Embedding (OLE). OpenDoc makes it possible to design independent programs (components) that can work together on a single document. OpenDoc is being developed by a loose alliance of companies, including Apple Computer and IBM.
  • OpenGL: Open Graphics Library – Open Graphics Library(OpenGL) is a standard specification defining a cross-language cross-platform API for writing applications that produce 3D computer graphics (and 2D computer graphics as well). The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL was developed by Silicon Graphics and is popular in the video games industry where it competes with Direct3D on Microsoft Windows platforms. OpenGL is widely used in CAD, virtual reality, scientific visualization, information visualization, flight simulation and video game development.
  • OpenKore – OpenKore is a roBOTic computer controlled entity (bot) designed for use with the Ragnarok MMORPG with the intention of automated playing and/or leveling. OpenKore is an advanced bot created by VCL as a variation of one of the most popular Ragnarok Online bots, Kore. Its code is written in Perl, and possesses a command line interface. OpenKore is a fully free and open-source project.
  • OpenNTPD – OpenNTPD is a Unix system daemon that uses the Network Time Protocol to synchronise clocks of computer systems with a reliable and accurate time source. OpenNTPD was developed as part of the OpenBSD project. Its design goals include creating a daemon that is secure (non-exploitable), easy to configure and to have source code that can be distributed under a BSD license.
  • OpenROAD: Open Rapid Object Application Development – Open Rapid Object Application Development(OpenROAD) is a 4GL development language which includes a suite of development tools, with built-in IDE, Code Repository, allowing applications to be developed and deployed on various platforms. The syntax of OpenROAD is very closely linked to that of the Ingres database, with direct support for embedded SQL. In a similar way to other event based programming languages, code can be placed in groups for related windows/system events. Ingres Corporation owns and provides support and services for Ingres, OpenROAD and the connectivity products.
  • OpenSolaris – OpenSolaris is an open source project created by Sun Microsystems to build a developer community around the Solaris Operating System technology. The project is aimed at developers, system administrators, and users who want to develop and improve operating systems.
  • Open-Source License – An open-source license is a copyright license for computer software that makes the source code available under terms that allow for modification and redistribution without having to pay the original author. Such licenses may have additional restrictions such as a requirement to preserve the name of the authors and the copyright statement within the code. One popular (and sometimes considered normative) set of open source licenses are those approved by the Open Source Initiative (OSI) based on their Open Source Definition (OSD).
  • OpenTracker – OpenTracker refers to the open source versions of the Tracker and Deskbar desktop management tools for BeOS. The original Tracker and Deskbar were created by Be, Incorporated, as part of BeOS, but were opensourced in late 2000. It is under the OpenTracker Licence, which is a barely modified BSD licence that allows the use of the Be trademark Tracker to be used.
  • Operating Environment – Operating environment is the environment in which users run programs, whether in a command line interface, such as in MS-DOS, or in a graphical user interface, such as in the Macintosh operating system or Windows. There is a thin line between operating environments and shells (such as Unix shell). Historically, shells are the interfaces to operating systems. They do not actually add any new capabilities; they simply provide a better user interface. So-called intelligent shells, however, actually extend an operating system’s capabilities, so there is little difference between intelligent shells and operating environments.
  • OPS5: Official Production System – Official Production System (OPS5) is a rule-based or production system computer language, notable as the first such language to be used in a successful expert system, the R1/XCON system used to configure VAX computers. The first implementation of OPS5 was written in Lisp, and later rewritten in BLISS for speed.
  • Oracle Database – Oracle database is a relational database management system (DBMS) from Oracle, which runs on more than 80 platforms. The Oracle database, the current version of which is Oracle11i, is Oracle’s flagship product. It was introduced in the late 1970s and was the first database product to run on a variety of platforms from micro to mainframe computers.
  • ORB: Object Request Broker – An object request broker (ORB), a term in distributed computing, is a piece of middleware software that allows programmers to make program calls from one computer to another, via a network. ORBs handle the transformation of in-process data structures to the byte sequence which is transmitted over the network (of course, also the reverse transformation). This is called marshalling or serialization. ORBs often expose many more features, such as distributed transactions, directory services or real-time scheduling. In the object oriented languages, the ORB is an object, having methods to connect the objects being served. After such an object is connected to the ORB, the methods of that object become accessible for remote invocations. ORB must also have some means to obtain the network address of the object that has now become remote. The typical ORB also has many other methods.
  • ORD: Object-Relational Database – An object-relational database (ORD) is a relational database that allows developers to integrate the database with their own custom data types and methods. The term object-relational database is sometimes used to describe external software products running over traditional DBMSs to provide similar features; these systems are more correctly referred to as object-relational mapping systems.
  • ORDBMS: Object-Relational Database Management System – Object-relational database management system (ORDBMS) is a relational database management system that allows developers to integrate the database with their own custom data types and methods. Whereas RDBMS or SQL-DBMS products focused on the efficient management of data drawn from a limited set of data types (defined by the relevant language standards), an object-relational DBMS allows software developers to integrate their own types and the methods that apply to them into the DBMS. The goal of ORDBMS technology is to allow developers to raise the level of abstraction at which they view the problem domain.
  • OS/2: Operating System/2 – Operating System/2 (OS/2) is an operating system created by Microsoft and IBM, later developed by IBM exclusively. OS/2 is no longer marketed by IBM, and support for OS/2 is to be discontinued on December 31, 2006.
  • OS: Operating System – Operating system (OS) is a software program that manages the hardware and software resources of a computer. The OS performs basic tasks, such as controlling and allocating memory, prioritizing the processing of instructions, controlling input and output devices, facilitating networking, and managing files. The OS may be split into a kernel which is always present and various system programs which use facilities provided by the kernel to perform higher-level house-keeping tasks, often acting as servers in a client-server relationship.
  • OSD: Open Source Definition – The Open Source Definition(OSD) is used by the Open Source Initiative(OSI) to determine whether or not a software license can be considered open source. The definition was based on the Debian Free Software Guidelines, written and adapted primarily by Bruce Perens. Under the Open Source Definition, licenses must meet ten conditions in order to be considered open source licenses.
  • OSF: Open Software Foundation – Open Software Foundation (OSF) is an organization to create an open standard for an implementation of the Unix operating system. OSF’s standard Unix implementation was known as OSF/1 and was first released in 1990, which is not widely deployed. Other well-known standards developed by OSF include Motif and the Common Desktop Environment, respectively a widget toolkit and desktop environment for the X Window System. In 1996, OSF merged with the X/Open Company to become The Open Group.
  • OSI: Open Source Initiative – The Open Source Initiative (OSI) is an organization dedicated to promoting open-source software. Open Source Initiative was founded in February 1998 by Bruce Perens and Eric S. Raymond when Netscape Communications Corporation, published the source code for its flagship Netscape Communicator product as free software, due to lowering profit margins and competition with Microsoft’s Internet Explorer software.
  • OSID: Open Service Interface Definition – Open Service Interface Definitions (OSIDs) are programmatic interface specifications describing services. These interfaces are specified by the Open Knowledge Initiative (O.K.I.) to implement a Service-Oriented Architecture (SOA) to achieve interoperability among applications across a varied base of underlying and changing technologies.
  • OSS/J: OSS Through Java – Operations Support System(OSS) through Java (OSS/J) is a kind of middleware to connect different OSS information systems by using Java technologies. The OSS/J initiative has been founded in 2000 by several members. Their primary goal is to develop an open standard for the integration of Operations Support Systems.
  • OSS: Open Sound System – The Open Sound System (OSS) is a portable sound interface available in 11 different Unix systems. In the case of the Linux kernel, OSS was the only supported sound system used up to the 2.4.x series. Starting with version 2.5, the Advanced Linux Sound Architecture (ALSA) was introduced, and the OSS interface became deprecated by Linux’ authors. ALSA contains an optional OSS emulation mode that transparently appears to programs as if it were OSS.
  • OSS: Open-Source Software – Open-source software(OSS) is a type of computer software whose source code is available under a copyright license that permits users to study, change, and improve the software, and to redistribute it in modified or unmodified form. Benefits of OSS are that developers can customize programs, and these innovations, in turn, are shared within the programming community so that everyone learns from each other. Linux is one popular example of OSS.
  • Outliner – An outliner is a special text editor that allows the grouping of text in sections that are organized in a tree (hierarchy) of concepts, an outline. Outline tools can be used for computer programming, collecting or organizing ideas, or project management.

P

  • p7zip – p7zip is a port of the command line version of the 7-Zip file archiverfamous for its introduction of the high-compression 7z formatto POSIX-conforming operating systems, such as Unix, Linux, Windows NT (or greater version) and Mac OS X. It is free software, available under the LGPL free software license.
  • Packaged Software – Packaged software refers to a commercial application program or collection of programs developed to meet the needs of a variety of users, rather than custom designed for a specific user or company. Packaged software is normally put on a CD (or disks), packaged in a box and sold to the general public.
  • Page Recognition – Page recognition is a feature of software to recognize different kinds of items on a scanned page. Page recognition software can distinguish text from pictures, and converts text on the page into computer characters by means of optical character recognition (OCR).
  • Paint Program – Paint program is a type of application that allows a user to “paint” on the computer screen. Using a mouse or other pointer, the user can select from various drawing and painting tools such as brushes, spray cans, etc. and a full palette of colors. The paint program allows the user to control the color of each pixel. Sophisticated graphics editing capabilities such as screens, filters, etc., can be used. Example ofpaint program include Adobe Illustrate and Coral Draw.
  • Parallel Algorithm – In computer science, a parallel algorithm, as opposed to a traditional serial algorithm, is one which can be executed a piece at a time on many different processing devices, and then put back together again at the end to get the correct result.
  • Parallel Compiler – Parallel compiler is a type of computer compiling technique that is used to speed up the process of compilation on multiprocessor machines. Parallel compilers are developed for supercomputers and other large scale multiprocessor machines.
  • Parallel Computing – Parallel computing is the simultaneous execution of the same task (split up and specially adapted) on multiple processors or multiple computers in order to obtain results faster. The idea is based on the fact that the process of solving a problem usually can be divided into smaller tasks, which may be carried out simultaneously with some coordination. A subtype of parallel algorithms, distributed algorithms are algorithms designed to work in cluster computing and distributed computing environments, where additional concerns beyond the scope of “classical” parallel algorithms need to be addressed.
  • Parallel Port – Parallel port, also called a female connector, is a socket on a computer for transmitting data in parallel, or more than one bit at a time. There may be eight, 16, or 36 channels; each channel carries one bit of information, so eight channels would be used to transmit one eight-bit byte at a time. Not all the channels are used for data; some maybe used for control signals. A parallel port has 25 holes, and the cable that plugs into it has 25 pins.
  • Parallel Processing – Parallel processing is a computing architecture within a single computer that performs more than one operation at the same time. Parallel processing can also be achieved by using multiple computers clustered together to procss one part of a large function simultaneously to obtain results faster.
  • Parallel Terraced Scan – The parallel terraced scan is a multi-agent based search technique that is basic to cognitive architectures, such as copycat, letter-string, the examiner, tabletop, and others. It was developed by John Rehling and Douglas Hofstadter at the Center for Research on Concepts and Cognition at the Indiana University, Bloomington.
  • Parser Program – Parser is a computer program to conduct parsing process to determine the syntactic structure of a sentence or string of symbols in some languages. A parser normally takes as input a sequence of tokens output by a lexical analyser. It may produce some kind of abstract syntax tree as output. One of the best known parser generators is yacc.
  • Parsing Process – Parsing process, also known as syntax analysis, refers to the analyzing an input sequence (read from a file or a keyboard, for example) in order to determine its grammatical structure with respect to a given formal grammar. Parsing process transforms input text into a data structure, usually a tree, which is suitable for later processing and which captures the implied hierarchy of the input. Generally, parsers operate in two stages, first identifying the meaningful tokens in the input, and then building a parse tree from those tokens.
  • Partial Evaluation – Partial evaluation is a technique for program compiling optimization. During compiling, partial evaluation transforms and pre-computes the static data, part of the input data known at compile time, into dynamic data, which in general runs more efficiently.
  • Pascal programming Language – Pascal pogramming language is a high-level programming language developed by Niklaus Wirth in the late 1960s based on ALGOL, and named after Blaise Pascal, a seventeenth-century French mathematician who constructed one of the first mechanical adding machines. Pascal is best known for its affinity to structured programming techniques. The nature of the language forces programmers to design programs methodically and carefully. For this reason, it is a popular teaching language.
  • Patch – A patch, so called a service patch or software pacth, refers to a fix to a program bug. A patch is an actual piece of object code that is inserted into (patched into) an executable program. Patches typically are available as downloads over the Internet.
  • Pattern Matching – Pattern matching is the act of checking for the presence of the constituents of a given pattern. In contrast to pattern recognition, the pattern is rigidly specified. Such a pattern concerns conventionally either sequences or tree structures. Pattern matching is used to check that things have the desired structure, to find relevant structure, to retrieve the aligning parts, and to substitute the matching part with something else.
  • Payware – Payware is a type of Internet downloadable software that has a price and is on sale. It is a commercial software not freeware or shareware.
  • PC Weenies – The PC Weenies is a popular webcomic with a special focus on technology humor and geek culture, as experienced through the lives of the fictitious Weiner family. The PC Weenies was created and launched on the web in October 1998 by Krishna M. Sadasivam, a former electrical engineer. The series has enjoyed success in web and print media. Most notably, The PC Weenies was the first webcomic to appear regularly on CNET. Currently, The PC Weenies appear in both Tau Beta Pi’s The BENT publication, as well as EE Times.
  • PCBoard – PCBoard was an MS-DOS / OS/2 bulletin board system (BBS) software package first created by the Clark Development Corporation, first introduced in 1983. Clark Development pioneered the FILE_ID.DIZ format as well as a powerful scripting language (PPL) which supported modifications called PPEs (PCBoard Programming Executable).
  • PC-BSD – PC-BSD is a Unix-like, desktop-oriented operating system based on FreeBSD. It aims to be easy to install by using a graphical installation program, and easy- and ready-to-use immediately by providing KDE as the default, pre-installed graphical user interface. The PC-BSD project is currently developing a graphical software installation program which will install pre-built software packages
  • PC-DOS: Personal Computer-Disk Operating System – Personal Computer-Disk Operating System(PC-DOS) is an operating system developed by Microsoft and supplied with IBM PCs. Microsoft also developed MS-DOS, a very similar operating system, to be used with non-IBM PCs. Starting with DOS 6, MS-DOS and PC-DOS have different sets of auxiliary utility programs. MS-DOS and PC-DOS are both called DOS for short.
  • PCL: Printer Control Language – Printer Control Language (PCL) is the page description language (PDL) developed by HP that has become a de facto industry standard. Originally developed for early inkjet printers in 1984, PCL has been released in varying levels for thermal, dot matrix printer, and laser printers. PCL 5 and later versions support a scalable font technology called Intellifont.
  • PCMS: Platform Content Management System – Platform Content Management System (PCMS), a type of content management system, provides the ability to manage all objects (files, folders, programs, etc) on a given set of systems.
  • PDF: Portable Document Format – Portable Document Format(PDF) is the native file format for Adobe Systems’ Acrobat. The PDF file format is independent of the original application software, hardware, and operating system used to create those documents. A PDF file can describe documents containing any combination of text, graphics, and images in a device-independent and resolution independent format.
  • PDL: Page Description Language – Page Description Language(PDL) is a type of printer language that allows the appearance of a printed page to be described in a high-level, device-independent way. Using PDL, printing then becomes a two-stage process: an application program produces a description in the language, which is then interpreted by a specific output device. Page Description Language can therefore serve as an interchange standard for transmission and storage of printable documents. Examples of PDL are Adobe Systems, Inc.’s PostScript or Xerox’s Interpress.
  • PEEK and POKE – In computing, PEEK is a BASIC programming language function used for reading the contents of a memory cell at a specified address. The corresponding command to set the contents of a memory cell is POKE.
  • Peephole Optimization – Peephole optimization is a kind of optimization performed over a very small set of instructions in a segment of generated code. The set is called a “peephole” or a “window”. This kind of optimization makes certain assumptions about the efficiency of instructions. Modern computer architectures typically allow for many hundreds of different kinds of peephole optimizations, and it is therefore often appropriate for compiler programmers to implement them using a pattern matching algorithm.
  • People Aggregator – A people aggregator is a social networking system derived from FOAF that uses open standards, network interconnectivity, and massive flexibility to decentralise social networking on the internet.
  • Per Seat – Per seat is a way of licensing software based on the number of workstations on which it will be installed and used.
  • Perl: Practical Extraction and Reporting Language – Perl (Practical Extraction and Reporting Language) is a script programming language that is similar in syntax to the C language and that includes a number of popular Unix facilities such as sed, awk, and tr.
  • PHP Hypertext Preprocessor – PHP Hypertext Preprocessor(PHP) is an open-source, reflective programming language. Originally designed as a high level scripting language for producing dynamic Web pages, PHP is used mainly in server-side application software. PHP allows web developers to create dynamic content that interacts with databases. PHP applications are normally found on Linux servers and in conjunction with MySQL databases. It provides those servers with functionality similar to that provided to the Windows platform by Active Server Pages technology.
  • PHPEdit – PHPEdit is a commercial Integrated Development Environment (IDE) developed by the PHPEdit Group. It runs on the Microsoft Windows operating system, and is designed mainly for the PHP language.
  • Physalis – Physalis is a project to build software that allows users to run a service framework (OSGi-like) on top of Microsoft .NET capable devices and computers. It is also supposed to work with the .NET Compact Framework and thus support diverse embedded devices like Pocket PCs, Smart Phones and custom solutions based on the Windows CE embedded operating system.
  • PID: Process Identifier – Process identifier(PID) is an integer used by the Unix kernel to uniquely identify a process. PIDs are returned by the fork system call and can be passed to wait() or kill() to perform actions on the given process.
  • Piracy – Software piracy refers to the illegal copying, distribution, or use of software.
  • PKZIP: Phil Katz’s ZIP – Phil Katz’s ZIP (PKZIP) program is an archiving tool originally written by the late Phil Katz, and marketed by his company PKWARE, Inc. The first version of PKZIP appeared in 1989. It was a DOS command-line tool and was distributed as shareware.
  • Planner Programming Language – Planner programming language designed by Carl Hewitt at MIT in 1969. First subsets such as Micro-Planner and Pico-Planner were implemented and then essentially the whole language was implemented in Popler and derivations such as QA-4, Conniver, QLISP and Ether were important tools in Artificial Intelligence research in the 1970’s, which influenced the commercial developments of KEE and ART.
  • Plugin or Plug-In – A plugin (or plug-in) is a type of computer programs that interacts with a main application (a web browser or an email program, for example) to provide a certain, usually very specific, function. Typical examples are plugins that read or edit specific types of files (for instance, multimedia files); encrypt or decrypt email (for instance, PGP); filter images in graphic programs.
  • Podcatcher – A podcatcher is a computer program used to automatically download podcasts. It is a form of aggregator, and can also transfer received audio files to a portable media player. For example, the iTunes by Apple Computers, is a Podcatcher.
  • Polyfont Recognition – Polyfont recognition, a term often used with OCR software, refers to the capability of computer software to read (or recognize) more than one type of font on a document.
  • Portable Software – Portable software refers to a type of software that can be used on more than one hardware platform, and easily switched from one to another.
  • POSIX: Portable Operating System Interface – Portable Operating System Interface(POSIX) is a set of IEEE standards (1003) designed to provide application portability between Unix variants. IEEE 1003.1 defines a Unix-like operating system interface, IEEE 1003.2 defines the shell and utilities and IEEE 1003.4 defines real-time extensions.
  • Postgres – Postgres is an object-oriented relational database management system (OORDBMS). It began as a research project at the University of California, Berkely and is available in several free and commercial versions today.
  • PostScript – PostScript, a Page Description Language(PDL), is an interpreted, stack-based language (like FORTH). It was used as a page description language by the Apple LaserWriter, and now many laser printers and on-screen graphics systems. Its primary application is to describe the appearance of text, graphical shapes and sampled images on printed or displayed pages.
  • POV-Ray: Persistence of Vision Raytracer – Persistence of Vision Raytracer (POV-Ray) is a free ray tracing program available for a variety of computer platforms. It was originally based on DKBTrace, written by David K. Buck and Aaron A. Collins.
  • PowerAnimator – PowerAnimator, the precursor to what is now Maya and StudioTools, was an expensive, complex, highly-integrated industrial 3D modeling, animation, and visual effects suite. It was the most widely used non-proprietary software in the visual effects and animation industries, and as such, it has had a long track record, starting with Terminator 2 in 1990 and ending in Star Wars Episode I: The Phantom Menace in 1999. PowerAnimator ran natively on MIPS based SGI Irix systems up until the late 1990s, when it was ported to the NT platform.
  • PowerArchiver – PowerArchiver is a commercial file archiver designed for Microsoft Windows users, developed by ConexWare Inc. It uses eg. 7-Zip format, and can also handle a number of other archive formats. It is a commercial product with a free evaluation version.
  • PowerBASIC – PowerBASIC is a dialect of the BASIC programming language, based on the Turbo Basic. Its syntax is similar to that of FreeBasic, GW Basic, QBasic and Turbo Basic. PowerBASIC compilers compile to a pure binary form (native code), without an interpreter at all involved. PowerBASIC programs also don’t require any external DLLs to run (unless the programmer deliberately designs them to do so). The executable files they create are almost as compact as those written directly in Assembly Language, run fast, and require no runtime files. Unlike Visual Basic (for example) with its large runtime overhead, it is common for a sophisticated application written in PowerBASIC to be so small that it fits on a diskette.
  • PPM: Project Portfolio Management – Project portfolio management (PPM) refers to a software package that enables corporate and business users to organize a series of projects into a single portfolio that will provide reports based on the various project objectives, costs, resources, risks and other pertinent associations. Project portfolio management software allows the user, usually management or executives within the company, to review the portfolio which will assist in making key business decisions for the projects.
  • PRE: Partial Redundancy Elimination – Partial redundancy elimination (PRE) is a compiler optimization that eliminates expressions that are redundant on some but not necessarily all paths through a program. PRE is a form of common subexpression elimination (CSE).
  • Preemptive – Preemptive is a practice of an operating system if it allows the running task to be suspended when a task of higher priority becomes ready (or a task of equal priority is granted a turn). Non-preemptive schedulers are easier to be implemented but less appropriate for embedded systems, which must be responsive to external events
  • Pre-Emptive Multitasking – Pre-emptive multitasking, also known as preemptive multithreading, is a form of multitasking where the scheduler can interrupt and suspend (“swap out”) the currently running task in order to start or continue running (“swap in”) another task. The tasks under pre-emptive multitasking can be written as though they were the only task and the scheduler decides when to swap them. The scheduler must ensure that when swapping tasks, sufficient state is saved and restored that tasks do not interfere. Preemptive multitasking allows the computer system to more reliably guarantee each process a regular “slice” of operating time. It also allows the system to rapidly deal with important external events like incoming data, which might require the immediate attention of oneor another process.
  • Preprocessor – A preprocessor is a program that takes text and performs lexic