Logo
Unionpedia
Communication
Get it on Google Play
New! Download Unionpedia on your Android™ device!
Install
Faster access than browser!
 

Thunk

Index Thunk

In computer programming, a thunk is a subroutine used to inject an additional calculation into another subroutine. [1]

55 relations: Address space, ALGOL 60, Anonymous function, Branch table, C++, Calling convention, Class (computer programming), Code generation (compiler), Compiler, Computer programming, CPU modes, Dispatch table, DOS Protected Mode Interface, DOS Protected Mode Services, Dynamic linker, Entry point, Evaluation strategy, Functional programming, Futures and promises, Glasgow Haskell Compiler, J/Direct, Lazy evaluation, Legacy system, Libffi, Memoization, Method (computer programming), Microsoft Layer for Unicode, Microsoft Press, Microsoft Windows, Miller Freeman, Inc., Modular programming, MS-DOS, Multiple inheritance, Object-oriented programming, OOPSLA, OS/2, Overlay (programming), Platform Invocation Services, Reduction strategy (code optimization), Remote procedure call, Shim (computing), Source code, Subroutine, This (computer programming), Trampoline (computing), USENIX, Virtual machine, Virtual memory, Win32s, Windows on Windows, ..., Wintel, WoW64, .NET Framework, 16-bit, 32-bit. Expand index (5 more) »

Address space

In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity.

New!!: Thunk and Address space · See more »

ALGOL 60

ALGOL 60 (short for Algorithmic Language 1960) is a member of the ALGOL family of computer programming languages.

New!!: Thunk and ALGOL 60 · See more »

Anonymous function

In computer programming, an anonymous function (function literal, lambda abstraction, or lambda expression) is a function definition that is not bound to an identifier.

New!!: Thunk and Anonymous function · See more »

Branch table

In computer programming, a branch table or jump table is a method of transferring program control (branching) to another part of a program (or a different program that may have been dynamically loaded) using a table of branch or jump instructions.

New!!: Thunk and Branch table · See more »

C++

C++ ("see plus plus") is a general-purpose programming language.

New!!: Thunk and C++ · See more »

Calling convention

In computer science, a calling convention is an implementation-level (low-level) scheme for how subroutines receive parameters from their caller and how they return a result.

New!!: Thunk and Calling convention · See more »

Class (computer programming)

In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).

New!!: Thunk and Class (computer programming) · See more »

Code generation (compiler)

In computing, code generation is the process by which a compiler's code generator converts some intermediate representation of source code into a form (e.g., machine code) that can be readily executed by a machine.

New!!: Thunk and Code generation (compiler) · See more »

Compiler

A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target language).

New!!: Thunk and Compiler · See more »

Computer programming

Computer programming is the process of building and designing an executable computer program for accomplishing a specific computing task.

New!!: Thunk and Computer programming · See more »

CPU modes

CPU modes (also called processor modes, CPU states, CPU privilege levels and other names) are operating modes for the central processing unit of some computer architectures that place restrictions on the type and scope of operations that can be performed by certain processes being run by the CPU.

New!!: Thunk and CPU modes · See more »

Dispatch table

In computer science, a dispatch table is a table of pointers to functions or methods.

New!!: Thunk and Dispatch table · See more »

DOS Protected Mode Interface

In computing, the DOS Protected Mode Interface (DPMI) is a specification introduced in 1989 which allows a DOS program to run in protected mode, giving access to many features of the new PC processors of the time not available in real mode.

New!!: Thunk and DOS Protected Mode Interface · See more »

DOS Protected Mode Services

DOS Protected Mode Services (DPMS) is a set of extended DOS memory management services to allow DPMS-enabled DOS drivers to load and execute in extended memory and protected mode.

New!!: Thunk and DOS Protected Mode Services · See more »

Dynamic linker

In computing, a dynamic linker is the part of an operating system that loads and links the shared libraries needed by an executable when it is executed (at "run time"), by copying the content of libraries from persistent storage to RAM, and filling jump tables and relocating pointers.

New!!: Thunk and Dynamic linker · See more »

Entry point

In computer programming, an entry point is where control is transferred from the operating system to a computer program, at which place the processor enters a program or a code fragment and execution begins.

New!!: Thunk and Entry point · See more »

Evaluation strategy

Evaluation strategies are used by programming languages to determine when to evaluate the argument(s) of a function call (for function, also read: operation, method, or relation) and what kind of value to pass to the function.

New!!: Thunk and Evaluation strategy · See more »

Functional programming

In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.

New!!: Thunk and Functional programming · See more »

Futures and promises

In computer science, future, promise, delay, and deferred refer to constructs used for synchronizing program execution in some concurrent programming languages.

New!!: Thunk and Futures and promises · See more »

Glasgow Haskell Compiler

Glasgow Haskell Compiler, less commonly known as The Glorious Glasgow Haskell Compilation System or simply GHC, is an open source native code compiler for the functional programming language Haskell.

New!!: Thunk and Glasgow Haskell Compiler · See more »

J/Direct

J/Direct was a technology included in some versions of Microsoft's Java Virtual Machine, which allowed direct calls into the Windows API.

New!!: Thunk and J/Direct · See more »

Lazy evaluation

In programming language theory, lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations (sharing).

New!!: Thunk and Lazy evaluation · See more »

Legacy system

In computing, a legacy system is an old method, technology, computer system, or application program, "of, relating to, or being a previous or outdated computer system." Often a pejorative term, referencing a system as "legacy" means that it paved the way for the standards that would follow it.

New!!: Thunk and Legacy system · See more »

Libffi

libffi is a foreign function interface library.

New!!: Thunk and Libffi · See more »

Memoization

In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.

New!!: Thunk and Memoization · See more »

Method (computer programming)

A method in object-oriented programming (OOP) is a procedure associated with a message and an object.

New!!: Thunk and Method (computer programming) · See more »

Microsoft Layer for Unicode

Microsoft Layer for Unicode (or MSLU) is a software library for Windows software developers to simplify creating Unicode-aware applications for Windows 95, Windows 98, or Windows Me.

New!!: Thunk and Microsoft Layer for Unicode · See more »

Microsoft Press

Microsoft Press is the publishing arm of Microsoft, usually releasing books dealing with various current Microsoft technologies.

New!!: Thunk and Microsoft Press · See more »

Microsoft Windows

Microsoft Windows is a group of several graphical operating system families, all of which are developed, marketed, and sold by Microsoft.

New!!: Thunk and Microsoft Windows · See more »

Miller Freeman, Inc.

Miller Freeman, Inc., was a San Francisco-based publisher of trade books and business magazines, as well as a manager of trade and industry expositions.

New!!: Thunk and Miller Freeman, Inc. · See more »

Modular programming

Modular programming is a software design technique that emphasizes separating the functionality of a programme into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.

New!!: Thunk and Modular programming · See more »

MS-DOS

MS-DOS (acronym for Microsoft Disk Operating System) is an operating system for x86-based personal computers mostly developed by Microsoft.

New!!: Thunk and MS-DOS · See more »

Multiple inheritance

Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit characteristics and features from more than one parent object or parent class.

New!!: Thunk and Multiple inheritance · See more »

Object-oriented programming

Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self").

New!!: Thunk and Object-oriented programming · See more »

OOPSLA

OOPSLA (Object-Oriented Programming, Systems, Languages & Applications) is an annual ACM research conference.

New!!: Thunk and OOPSLA · See more »

OS/2

OS/2 is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci.

New!!: Thunk and OS/2 · See more »

Overlay (programming)

In a general computing sense, overlaying means "the process of transferring a block of program code or other data into internal memory, replacing what is already stored".

New!!: Thunk and Overlay (programming) · See more »

Platform Invocation Services

Platform Invocation Services, commonly referred to as P/Invoke, is a feature of Common Language Infrastructure implementations, like Microsoft's Common Language Runtime, that enables managed code to call native code.

New!!: Thunk and Platform Invocation Services · See more »

Reduction strategy (code optimization)

In code optimization during the translation of computer programs into an executable form, and in mathematical reduction generally, a reduction strategy for a term rewriting system determines which reducible subterms (or reducible expressions, redexes) should be reduced (contracted) within a term; it may be the case that a term may contain multiple redexes which are disjoint from one another and that choosing to contract one redex before another may have no influence on the resulting reduced form of the term, or that the redexes in a term do overlap and that choosing to contract one of the overlapping redexes over the other may result in a different reduced form of the term.

New!!: Thunk and Reduction strategy (code optimization) · See more »

Remote procedure call

In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.

New!!: Thunk and Remote procedure call · See more »

Shim (computing)

In computer programming, a shim is a small library that transparently intercepts API calls and changes the arguments passed, handles the operation itself or redirects the operation elsewhere.

New!!: Thunk and Shim (computing) · See more »

Source code

In computing, source code is any collection of code, possibly with comments, written using a human-readable programming language, usually as plain text.

New!!: Thunk and Source code · See more »

Subroutine

In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.

New!!: Thunk and Subroutine · See more »

This (computer programming)

this, self, and Me are keywords used in some computer programming languages to refer to the object, class, or other entity of which the currently running code is a part.

New!!: Thunk and This (computer programming) · See more »

Trampoline (computing)

In computer programming, the word trampoline has a number of meanings, and is generally associated with jumps (i.e., moving to different code paths).

New!!: Thunk and Trampoline (computing) · See more »

USENIX

The USENIX Association is the Advanced Computing Systems Association.

New!!: Thunk and USENIX · See more »

Virtual machine

In computing, a virtual machine (VM) is an emulation of a computer system.

New!!: Thunk and Virtual machine · See more »

Virtual memory

In computing, virtual memory (also virtual storage) is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very large (main) memory." The computer's operating system, using a combination of hardware and software, maps memory addresses used by a program, called virtual addresses, into physical addresses in computer memory.

New!!: Thunk and Virtual memory · See more »

Win32s

Win32s is a 32-bit application runtime environment for the Microsoft Windows 3.1 and 3.11 operating systems.

New!!: Thunk and Win32s · See more »

Windows on Windows

In computing, Windows on Windows (commonly referred to as WOW) is a compatibility layer of 32-bit versions of the Microsoft Windows NT family of operating systems that extends NTVDM to provide limited support for running legacy 16-bit programs written for Windows 3.x or earlier.

New!!: Thunk and Windows on Windows · See more »

Wintel

Wintel is a portmanteau of Windows and Intel, referring to personal computers using Intel x86-compatible processors running Microsoft Windows.

New!!: Thunk and Wintel · See more »

WoW64

In computing on Microsoft platforms, WoW64 (Windows 32-bit on Windows 64-bit) is a subsystem of the Windows operating system capable of running 32-bit applications that is included in all 64-bit versions of Windows—including Windows XP Professional x64 Edition, IA-64 and x64 versions of Windows Server 2003, as well as 64-bit versions of Windows Vista, Windows Server 2008, Windows 7, Windows 8, Windows Server 2012, Windows 8.1 and Windows 10.

New!!: Thunk and WoW64 · See more »

.NET Framework

.NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows.

New!!: Thunk and .NET Framework · See more »

16-bit

16-bit microcomputers are computers in which 16-bit microprocessors were the norm.

New!!: Thunk and 16-bit · See more »

32-bit

32-bit microcomputers are computers in which 32-bit microprocessors are the norm.

New!!: Thunk and 32-bit · See more »

Redirects here:

Delayed computation, Delayed evaluation, Flat thunk, Flat thunking, General thunk, General thunking, Pointer fixups, Suspended computation, Suspended evaluation, Thunk (compatibility mapping), Thunk (data), Thunk (delayed computation), Thunk (functional programming), Thunk (object-oriented programming), Thunk (programming), Thunking, Thunks.

References

[1] https://en.wikipedia.org/wiki/Thunk

OutgoingIncoming
Hey! We are on Facebook now! »