link

en-verb

link (third-person singular simple present links, present participle linking, simple past and past participle linked)

links (present singular third-person)
linking (participle present)
linked (participle past)
linked (past)

From Middle English linke, lenke, from a merger of Old English hlenċe, hlenċa (“ring; chainlink”) and Old Norse *hlenkr, hlekkr (“ring; chain”); both from Proto-Germanic *hlankiz (“ring; bond; fettle; fetter”). Used in English since the 14th century. Related to lank.

inh

(software compilation) To combine objects generated by a compiler into a single executable.


compile

en-verb

compile (third-person singular simple present compiles, present participle compiling, simple past and past participle compiled)

compiles (present singular third-person)
compiling (participle present)
compiled (participle past)
compiled (past)

From Middle English compilen, from Old French compiler, from Latin compīlō (“to plunder”).

After I compile this program I’ll run it and see if it works.

(transitive, programming) To use a compiler to process source code and produce executable code.

There must be an error in my source code because it won’t compile.

(intransitive, programming) To be successfully processed by a compiler into executable code.


compile

[…] programming team managers assumed the "improved programs" produced through structured programming would not require as many compiles during development.

1985, Robert A Stern, An Introduction to Computers and Information Processing:

Any file with an error or warning on it will be added to this smart group until the next compile.

2007, Scott Meyers, Mike Lee, MAC OS X Leopard: Beyond the Manual:


compiler

Serbo-Croatian: kompajler

From Middle English compilour, from Anglo-Norman compilour, from Old French compileur, from Latin compīlātōrem, equivalent to compile + -er.

As a result, many compilers automatically allocate blocks of memory and then parcel chunks out to programs with a suballocator when needed. That is, the compiler allocates a chunk of some 4,000 bytes and then parcels this memory out to you in bits and pieces when you need it.

1995, Charles Calvert, Teach Yourself Windows 95 Programming in 21 Days, page 1170:

The recommended Apple Objective-C compiler, Clang/LLVM (versions 4.2 and above) provides support for autosynthesis of declared properties. This means that the compiler will automatically synthesize declared properties […]

2013, Keith Lee, Pro Objective-C, page 24:

(software) A computer program that transforms source code into object code.


compilation

en-noun

compilation (countable and uncountable, plural compilations)

English compile + -ation, from Middle French, from Latin compilatio (“a raking together, a plundering, a collection of documents”).

uder

(countable, uncountable, computing) Translation of source code into object code by a compiler.

компилиране

translation of source code into object code by a compiler


outline

en-verb

outline (third-person singular simple present outlines, present participle outlining, simple past and past participle outlined)

outlines (present singular third-person)
outlining (participle present)
outlined (participle past)
outlined (past)

(transitive, software compilation) To optimize for size by replacing repeated code fragments with function calls.


IR

en-noun

IR (countable and uncountable, plural IRs)

At the end of the chapter, you will have implemented your first compiler producing LLVM IR.

2021, Kai Nacke, Learn LLVM 12: A beginner's guide to learning LLVM compiler tools and core libraries with C++, Packt Publishing Ltd, →ISBN, page viii:

intermediate representation
w:intermediate representation

(software compilation) Initialism of intermediate representation.


collision

collision (countable and uncountable, plural collisions)

From Middle French collision, from Late Latin collīsiō, from Latin collīdere, past participle collīsus (“to dash together”); see collide. cf. allision.

naming collision
naming collision#English

(software compilation) Clipping of naming collision.


unroll

en-verb

unroll (third-person singular simple present unrolls, present participle unrolling, simple past and past participle unrolled)

unrolls (present singular third-person)
unrolling (participle present)
unrolled (participle past)
unrolled (past)

(transitive, programming, software compilation) To replace (a loop in a program) with a repetitive sequence of the individual instructions that the loop would carry out, sometimes used as an optimization.


linkage

en-noun

linkage (countable and uncountable, plural linkages)

Genetic linkage
Linkage (linguistics)
Linkage (mechanical)
Linkage (policy)
linkage

(software compilation) The act or result of linking: the combination of multiple object files into one executable, library, or object file.


inline

en-verb

inline (third-person singular simple present inlines, present participle inlining, simple past and past participle inlined)

inlines (present singular third-person)
inlining (participle present)
inlined (participle past)
inlined (past)

Some compilers will allow statics to be inlined, but then incorrectly create multiple instances of the inlined variable at run-time.

2000, Dov Bulka, David Mayhew, Efficient C++: Performance Programming Techniques, page 149:

Because functions that contain references to this cannot be inlined, the Compiler's ability to devirtualize prototype methods is even more important in terms of reducing the size of compiled code. By devirtualizing methods and removing references to this, more methods become functions that are candidates for inlining.

2010, Michael Bolin, Closure: The Definitive Guide:

(transitive, software compilation) To optimize using in-line expansion.


linker

(software compilation) A computer program that takes one or more objects generated by compilers and assembles them into a single executable program.


peephole optimization

en-noun

peephole optimization (countable and uncountable, plural peephole optimizations)

Coined by computer scientist William Marshall McKeeman in 1965, from peephole + optimization.

coin

The loop was more than twice as fast after I had applied peephole optimization.

The method of peephole optimization was described by McKeeman (1965). A simple code generator is replaced by one where short instruction sequences are replaced by ones which are shorter or faster.

1979, P. J. Brown, editor, Software Portability: An Advanced Course, Cambridge University Press, →ISBN, page 149:

(software compilation) An optimization that works by eliminating redundant instructions from a small area of source code.


LR

LR parsing

In Standard LR parsing, the next parser action (shift, reduce, accept or error) is determined using the current parser state and next input symbol to check the LR parsing table.

1991, Masaru Tomita, editor, Generalized LR Parsing, Springer, →ISBN, page 157:

(software compilation, of a parser) Initialism of left to right, rightmost derivation in reverse.


lookahead

en-noun

lookahead (countable and uncountable, plural lookaheads)

Our computer chess program uses lookahead to avoid difficult endgames.

(computing, software compilation) The analysis in advance of subsequent decisions that would be made if a particular branch of an algorithm was followed.


cross compiler

cross compilers (plural)
crosscompiler (alternative)
cross-compiler (alternative)

(computing) A compiler that generates code for a platform other than the one it runs on.


in-line expansion

in-line expansion (countable and uncountable, plural in-line expansions)

in-line expansions (plural)
inline expansion (alternative)

(software compilation) The replacement by a compiler of a function call with a copy of the entire function body, sometimes used as an optimization.


LTO

LTO (countable and uncountable, plural LTOs)

(software compilation) Initialism of link-time optimization.


inlinable

If somefn were an inlinable constant function, then even switching the evaluation order like this […] wouldn't change the outcome, since the entire expression still resolves at compile time.

2012, Tom Christiansen, Larry Wall, Brian Foy, Programming Perl, page 561:

(software compilation) Capable of being inlined.


dead code

Much dead code elimination is actually done on intermediate representations of your code, which may contain unnecessary intermediate calculations[…]

2006, William Von Hagen, The definitive guide to GCC:

(software compilation) Instructions that, when executed, have no effect on the running of the program.

kuollut koodi

instructions that have no effect on the running of the program


type safety

programming language
programming language

(programming, software compilation) The extent to which a programming language is type-safe.

tyyppiturvallisuus

the extent to which a programming language is type-safe


DCE

dead-code elimination
w:dead-code elimination

(software compilation) Initialism of dead-code elimination.


naming collision

naming collision (plural naming collisions)

(software compilation) An error caused by two source code elements (such as variables or functions) having the same name as each other.


copy elision

(software compilation) An optimisation technique where a value is transferred to the final target address, instead of being copied and then destroyed.


inliner

[…] an inliner was run on the program which inlined all static methods.

2004, Jong In Lim, Dong Hoon Lee, ICISC 2003 (volume 6, page 286)

(software compilation) A program or algorithm that optimizes code using in-line expansion.


superoptimization

LL-Q1860 (eng)-Flame, not lame-superoptimization.wav

Coined by American computer scientist and programmer Alexia Massalin in 1987, from super- + optimization.

coin

As such, we implemented a state-of-the-art stochastic superoptimization approach, adapted it to the sort setting and used it as the learning algorithm in AlphaDev.

2023 June 18, Daniel J. Mankowitz, Andrea Michi, Anton Zhernov, Marco Gelmi, Marco Selvi, “Faster sorting algorithms discovered using deep reinforcement learning”, in Nature, volume 618, number 7964, →DOI, →ISSN, pages 257–263:

peephole optimization
peephole optimization

(software compilation) A form of peephole optimization that typically uses an exhaustive brute-force search across all possible sequences of machine instructions.


MLIR

MLIR enables optimizations across various levels of abstractions from high-level optimizations with better control-flow representation to low-level compilers and executors that generate target machine code.

2022, Andres Rodriguez, Deep Learning Systems: Algorithms, Compilers, and Processors for Large-Scale Production, Springer Nature, →ISBN, page 195:

(software compilation) Initialism of multilevel intermediate representation.


GLR

(software compilation) Initialism of generalized LR.


intrinsify

en-verb

intrinsify (third-person singular simple present intrinsifies, present participle intrinsifying, simple past and past participle intrinsified)

intrinsifies (present singular third-person)
intrinsifying (participle present)
intrinsified (participle past)
intrinsified (past)

The instruction which we are going to intrinsify is the CRC32 calculation, which is implemented by java.util.zip.CRC32.

2015, Alex Kasko, Stanislav Kobylyanskiy, Alexey Mironchenko, OpenJDK Cookbook, Packt, →ISBN, page 139:

(software compilation, transitive) To turn (instructions) into an intrinsic.


inlinee

(software compilation) A portion of code that is optimized by means of in-line expansion.


peepholer

(software compilation) An algorithm or process that performs peephole optimization.