“L” – IT Outsourcing Vocabulary

  • 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.