67 relations: Abstraction (computer science), Ada (programming language), Application binary interface, Assembly language, Automatic variable, Buffer overflow, Burroughs large systems, C++, Calling convention, Common Lisp, Compiler, Computer program, Computer science, Continuation, Cooperative multitasking, Coroutine, Crash (computing), Data structure, Exploit (computer security), Floating-point arithmetic, Forth (programming language), Function prologue, GNU Debugger, Goto, High-level programming language, Instance (computer science), Instruction set architecture, ISSRE, Local variable, Machine-dependent software, Memory address, Memory management, Nested function, Object (computer science), Object-oriented programming, Operating system, Overhead (computing), Parameter (computer programming), Parent pointer tree, Pascal (programming language), Pointer (computer programming), Process (computing), Processor register, Programming language, Recursion (computer science), Reentrancy (computing), Return statement, Return-oriented programming, Return-to-libc attack, Reverse Polish notation, ..., Scheme (programming language), Setcontext, Setjmp.h, Signal (IPC), Software, Stack (abstract data type), Stack buffer overflow, Stack machine, Stack overflow, Stack-based memory allocation, Subroutine, Task (computing), This (computer programming), Thread (computing), Thread safety, Thunk, W^X. Expand index (17 more) » « Shrink index
In software engineering and computer science, abstraction is.
Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language, extended from Pascal and other languages.
In computer software, an application binary interface (ABI) is an interface between two binary program modules; often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user.
An assembly (or assembler) language, often abbreviated asm, is a low-level programming language, in which there is a very strong (but often not one-to-one) correspondence between the assembly program statements and the architecture's machine code instructions.
In computer programming, an automatic variable is a local variable which is allocated and deallocated automatically when program flow enters and leaves the variable's scope.
In information security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory locations.
In the 1970s, Burroughs Corporation was organized into three divisions with very different product line architectures for high-end, mid-range, and entry-level business computer systems.
C++ ("see plus plus") is a general-purpose programming language.
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.
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).
A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target language).
A computer program is a collection of instructions for performing a specific task that is designed to solve a specific class of problems.
Computer science deals with the theoretical foundations of information and computation, together with practical techniques for the implementation and application of these foundations.
In computer science and computer programming, a continuation is an abstract representation of the control state of a computer program.
Cooperative multitasking, also known as non-preemptive multitasking, is a style of computer multitasking in which the operating system never initiates a context switch from a running process to another process.
Coroutines are computer-program components that generalize subroutines for non-preemptive multitasking, by allowing multiple entry points for suspending and resuming execution at certain locations.
In computing, a crash (or system crash) occurs when a computer program, such as a software application or an operating system, stops functioning properly and exits.
In computer science, a data structure is a data organization and storage format that enables efficient access and modification.
An exploit (from the English verb to exploit, meaning "to use something to one’s own advantage") is a piece of software, a chunk of data, or a sequence of commands that takes advantage of a bug or vulnerability to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic (usually computerized).
In computing, floating-point arithmetic is arithmetic using formulaic representation of real numbers as an approximation so as to support a trade-off between range and precision.
Forth is an imperative stack-based computer programming language and environment originally designed by Charles "Chuck" Moore.
In assembly language programming, the function prologue is a few lines of code at the beginning of a function, which prepare the stack and registers for use within the function.
The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go, Java and partially others.
GoTo (goto, GOTO, GO TO or other case combinations, depending on the programming language) is a statement found in many computer programming languages.
In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer.
In object-oriented programming (OOP), an instance is a concrete occurrence of any object, existing usually during the runtime of a computer program.
An instruction set architecture (ISA) is an abstract model of a computer.
The International Symposium on Software Reliability Engineering (IEEE ISSRE) is an academic conference with strong industry participation running since 1990 and covering reliability engineering for software.
In computer science, a local variable is a variable that is given local scope.
Machine-dependent software is application programming that runs only on a specific kind of PC.
In computing, a memory address is a reference to a specific memory location used at various levels by software and hardware.
Memory management is a form of resource management applied to computer memory.
In computer programming, a nested function (or nested procedure or subroutine) is a function which is defined within another function, the enclosing function.
In computer science, an object can be a variable, a data structure, a function, or a method, and as such, is a value in memory referenced by an identifier.
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").
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.
In computer science, overhead is any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to perform a specific task.
In computer programming, a parameter (often called formal parameter or formal argument) is a special kind of variable, used in a subroutine to refer to one of the pieces of data provided as input to the subroutine.
In computer science, an in-tree or parent pointer tree is an -ary tree data structure in which each node has a pointer to its parent node, but no pointers to child nodes.
Pascal is an imperative and procedural programming language, which Niklaus Wirth designed in 1968–69 and published in 1970, as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honor of the French mathematician, philosopher and physicist Blaise Pascal. Pascal was developed on the pattern of the ALGOL 60 language. Wirth had already developed several improvements to this language as part of the ALGOL X proposals, but these were not accepted and Pascal was developed separately and released in 1970. A derivative known as Object Pascal designed for object-oriented programming was developed in 1985; this was used by Apple Computer and Borland in the late 1980s and later developed into Delphi on the Microsoft Windows platform. Extensions to the Pascal concepts led to the Pascal-like languages Modula-2 and Oberon.
In computer science, a pointer is a programming language object that stores the memory address of another value located in computer memory.
In computing, a process is an instance of a computer program that is being executed.
In computer architecture, a processor register is a quickly accessible location available to a computer's central processing unit (CPU).
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.
Recursion in computer science is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem (as opposed to iteration).
In computing, a computer program or subroutine is called reentrant if it can be interrupted in the middle of its execution and then safely be called again ("re-entered") before its previous invocations complete execution.
In computer programming, a return statement causes execution to leave the current subroutine and resume at the point in the code immediately after where the subroutine was called, known as its return address.
Return-oriented programming (ROP) is a computer security exploit technique that allows an attacker to execute code in the presence of security defenses such as executable space protection and code signing.
A "return-to-libc" attack is a computer security attack usually starting with a buffer overflow in which a subroutine return address on a call stack is replaced by an address of a subroutine that is already present in the process’ executable memory, bypassing the NX bit feature (if present) and ridding the attacker of the need to inject their own code.
Reverse Polish notation (RPN), also known as Polish postfix notation or simply postfix notation, is a mathematical notation in which operators follow their operands, in contrast to Polish notation (PN), in which operators precede their operands.
Scheme is a programming language that supports multiple paradigms, including functional programming and imperative programming, and is one of the two main dialects of Lisp.
setcontext is one of a family of C library functions (the others being getcontext, makecontext and swapcontext) used for context control.
setjmp.h is a header defined in the C standard library to provide "non-local jumps": control flow that deviates from the usual subroutine call and return sequence.
Signals are a limited form of inter-process communication (IPC), typically used in Unix, Unix-like, and other POSIX-compliant operating systems.
Computer software, or simply software, is a generic term that refers to a collection of data or computer instructions that tell the computer how to work, in contrast to the physical hardware from which the system is built, that actually performs the work.
In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations.
In software, a stack buffer overflow or stack buffer overrun occurs when a program writes to a memory address on the program's call stack outside of the intended data structure, which is usually a fixed-length buffer.
In computer science, computer engineering and programming language implementations, a stack machine is a type of computer.
In software, a stack overflow occurs if the call stack pointer exceeds the stack bound.
Stacks in computing architectures are regions of memory where data is added or removed in a last-in-first-out (LIFO) manner.
In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.
In computing, a task is a unit of execution or a unit of work.
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.
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.
Thread safety is a computer programming concept applicable to multi-threaded code.
In computer programming, a thunk is a subroutine used to inject an additional calculation into another subroutine.
W^X ("Write XOR Execute"; spoken as W xor X) is a security feature in operating systems and virtual machines.
Access link, Activation frame, Activation record, Call Frame Information, Call Stack, Call chain, Call frame, Call stack inspection, CallStack, Callout area, Callstack, Callstacks, Control stack, Display register, Frame pointer, Framepointer, Function stack, Mark pointer, Outgoing arguments area, Process stack, Return pointer, Run-time stack, Runtime stack, Stack frame, Stack pointer, Stack unwinding.