Skip to content
Category

Programming language implementation

page 1
compiler
In computing, a compiler is software that translates computer code written in one programming language (the source language) into another language (the target language). The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language (e.g. assembly language, object code, or machine code) to create an executable program.
assembly language
any low-level programming language in which there is a very strong correspondence between the instructions in the language and the architecture's machine code instructions
interpreter
program that executes source code without a separate compilation step
virtual machine
software that emulates an entire computer, often used to provide a different operating system or hardware architecture than the host system
executable
thumb|A hex dump of an executable [[real mode loader. The first column consists of addresses of the first byte in the second column, which comprises bytes of data in hexadecimal notation (least significant byte first), and the last column consists of the corresponding ASCII form.]]
lexical analysis
computing process of parsing a sequence of characters into a sequence of tokens
linker
computer system program which produces loadable and executable programs from object files or libraries, compiled and assembled separately
preprocessor
In computer science, a preprocessor (or precompiler) is a program that processes its input data to produce output that is used as input in another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers. The amount and kind of processing done depends on the nature of the preprocessor; some preprocessors are only capable of performing relatively simple textual substitutions and macro expansions, while others have the power of full-fledged programming languages.
protected mode
operational mode of x86-compatible central processing units
translator
computer program that translates from one programming language to another
real mode
operating mode of all x86-compatible CPUs
tail recursion
subroutine that calls itself as its final action
virtual 8086 mode
feature of specific microprocessor
undefined behavior
behavior of erroneous computer programs that the language standard permits to be unpredictable
memory safety
state of being protected from memory access bugs
object file
file containing relocatable format machine code
p-code machine
Programming virtual machine
optimizing compiler
compiler that tries to minimize or maximize some attributes of an executable computer program
BSS segment
In computer programming, the block starting symbol (abbreviated to .bss or bss) is the portion of an object file, executable, or assembly language code that contains statically allocated variables that are declared but have not been assigned a value yet. It is often referred to as the "bss section" or "bss segment".
software transactional memory
concurrency control mechanism for controlling access to shared memory in concurrent computing
Threaded code
program whose source code consists entirely of calls to functions
Long mode
CPU mode of operation where 64-bit programs are executed
Ragel
Ragel (IPA: ) is a finite-state machine compiler and a parser generator. Initially Ragel supported output for C, C++ and Assembly source code, later expanded to support several other languages including Objective-C, D, Go, Ruby, and Java. Additional language support is also in development. It supports the generation of table or control flow driven state machines from regular expressions and/or state charts and can also build lexical analysers via the longest-match method. Ragel specifically targets text parsing and input validation.
unspecified behavior
behavior that may vary on different implementations of a programming language
funarg problem
compiler construction difficulty in supporting first-class functions that capture variables without dynamic memory allocation
Tom
pattern matching language