Query: Pure object-oriented programing languages

Relevant passages:
Abstract type <=SEP=> In programming languages, an abstract type is a type in a nominative type system which cannot be instantiated directly. Abstract types are also known as existential types.  An abstract type may provide no implementation, or an incomplete implementation. Often, abstract types will have one or more implementations provided separately, for example, in the form of concrete subclasses which can be instantiated.

Actor (programming language) <=SEP=> The Actor programming language was invented by Charles Duff of The Whitewater Group in 1988. It was an offshoot of some object-oriented extensions to the Forth language he had been working on.Actor would be categorized as a pure object-oriented language in the style of Smalltalk. Like Smalltalk, everything was an object, including small integers.

Advice (programming) <=SEP=> In aspect and functional programming,  advice describes a class of functions which modify other functions when the latter are run; it is a certain function, method or procedure that is to be applied at a given join point of a program.The following is taken from a discussion at the mailing list aosd-discuss. Pascal Costanza contributed the following:The term advice goes back to the term advising as introduced by Warren Teitelman in his PhD thesis in 1966.

Aldor <=SEP=> Aldor is a programming language. It is the successor of A# as the extension language of the Axiom computer algebra system.The Aldor language combines imperative, functional, and object-oriented features. It has an elaborate type system, allowing types to be used as first-class values. Aldor's syntax is heavily influenced by Pascal, but it is optionally indentation-sensitive, like Python.

BETA (programming language) <=SEP=> BETA is a pure object-oriented language originating within the  "Scandinavian School" in object-orientation where the first object-oriented language Simula was developed. Among its notable features, it introduced nested classes, and unified classes with procedures into so called patterns.

Baby modula-3 <=SEP=> Baby Modula-3 is a functional programming sublanguage of Modula-3 (safe subset) programming language  based on ideals invented by Martín Abadi. It is an object oriented language for studying programming language design; one part of it is implicitly prototype-oriented programming language, and the other is explicitly statically typed designed for studying computer science type theories. It has been checked as a formal language of metaprogramming systems.

Beta (programming language) <=SEP=> BETA is a pure object-oriented language originating within the "Scandinavian School" in object-orientation where the first object-oriented language Simula was developed. Among its notable features, it introduced nested classes, and unified classes with procedures into so called patterns.

Bistro (programming language) <=SEP=> Bistro is a programming language designed and developed by Nikolas Boyd. It is intended to integrate features of Smalltalk and Java, running as a variant of Smalltalk that runs atop any Java virtual machine conforming to Sun Microsystems' Java specification.

Boo (programming language) <=SEP=> Boo is an object-oriented, statically typed, general-purpose programming language that seeks to make use of the Common Language Infrastructure's support for Unicode, internationalization, and web applications, while using a Python-inspired syntax and a special focus on language and compiler extensibility. Some features of note include type inference, generators, multimethods, optional duck typing, macros, true closures, currying, and first-class functions.

C++ <=SEP=> C++ (pronounced as cee plus plus, /ˈsiː plʌs plʌs/) is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation.It was designed with a bias toward system programming and embedded, resource-constrained and large systems, with performance, efficiency and flexibility of use as its design highlights.

COBOL <=SEP=> COBOL (/ˈkoʊbɒl/, an acronym for common business-oriented language) is a compiled English-like computer programming language designed for business use. It is imperative, procedural and, since 2002, object-oriented. COBOL is primarily used in business, finance, and administrative systems for companies and governments. In 1997, Gartner Group estimated that there were a total of 200 billion lines of COBOL in existence, which ran 80% of all business programs.

Cecil (programming language) <=SEP=> Cecilia  is a pure object-oriented programming language that was developed by Craig Chambers at the University of Washington in 1992 to be part of the Vortex project there. Cecil has many similarities to other object-oriented languages, most notably Objective-C, Modula-3, and Self. The main goals of the project were extensibility, orthogonality, efficiency, and ease-of-use.The language supports multiple dispatch and multimethods, dynamic inheritance, and optional static type checking.

Clascal <=SEP=> Clascal was an object-oriented programming language developed in 1983 by the Personal Office Systems (POS) division (later renamed The Lisa Division, still later The 32-Bit Systems Division) of Apple Computer.It was an extension of Lisa Pascal, which in turn harked back to the UCSD Pascal model originally implemented on the Apple II.

Class (computer programming) <=SEP=> 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).

Common Lisp <=SEP=> 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)). From the ANSI Common Lisp standard the Common Lisp HyperSpec, a hyperlinked HTML version, has been derived.The Common Lisp language was developed as a standardized and improved successor of Maclisp. Thus it is not an implementation, but rather a language specification.

Compact Application Solution Language <=SEP=> Compact Application Solution Language (CASL) is a programming language used to create computer programs for Palm OS, and Microsoft Windows desktops, laptops, and Pocket PCs with Windows Mobile.  It is published by WAGWARE Systems, Inc., and Brainyware, LLC.As a language, CASL is similar to Pascal or Visual Basic with object-oriented programming features.

Comparison of programming languages <=SEP=> Programming languages are used for controlling the behavior of a machine (often a computer). Like natural languages, programming languages conform to rules for syntax and semantics.There are thousands of programming languages and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people, but professional programmers may use dozens of languages in a career.

Comparison of programming languages (object-oriented programming) <=SEP=> This Comparison of programming languages compares how object-oriented programming languages such as C++, Python, Perl, Java, Object Pascal and others manipulate data structures.

Computer programming <=SEP=> Computer programming (often shortened to programming) is a process that leads from an original formulation of a computing problem to executable computer programs. Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation (commonly referred to as coding) of algorithms in a target programming language.

Cool (programming language) <=SEP=> Cool, an acronym for Classroom Object Oriented Language, is a computer programming language designed by Alexander Aiken for use in an undergraduate compiler course project. While small enough for a one term project, Cool still has many of the features of modern programming languages, including objects, automatic memory management, strong static typing and simple reflection.The reference Cool compiler is written in C++, built fully on the public domain tools.

CorbaScript <=SEP=> CorbaScript is an object-oriented scripting language.

Curl (programming language) <=SEP=> Curl is a reflective object-oriented programming language for interactive web applications whose goal is to provide a smoother transition between formatting and programming.

D (programming language) <=SEP=> The D programming language is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars and released in 2001. Bright was joined in the design and development effort in 2006 by Andrei Alexandrescu.

Data-structured language <=SEP=> In computing a data-structured language is a programming language in which the data structure is a main organizing principle, representation, model, for data and logic (code) alike, in which both are stored and operated upon, i.e., program data and logic are structured and operated on in the same way, by the same representation.These are generally well suited to reflection and introspection, and are in some ways more consistent than many other languages.

Dolittle (programming language) <=SEP=> Dolittle (Japanese ドリトル doritoru) is a programing language developed at the Osaka Electro-Communication University . Unlike the majority of programming languages it uses keywords based on Japanese and written in Japanese script. It is named after the character Dr Dolittle. It is easier for learners whose native language is Japanese to make early progress in understanding programming.

Eiffel (programming language) <=SEP=> Eiffel is an ISO-standardized, object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software. The design of the language is closely connected with the Eiffel programming method.

Extensible ML <=SEP=> Extensible ML (EML) is an ML-like programming language that adds support for object-oriented idioms in a functional setting.

Fortran <=SEP=> Fortran (previously FORTRAN, derived from Formula Translating System) is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing.

Functional programming <=SEP=> 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. It is a declarative programming paradigm, which means programming is done with expressions.

GRASP (object-oriented design) <=SEP=> General Responsibility Assignment Software Patterns (or Principles), abbreviated GRASP, consist of guidelines for assigning responsibility to classes and objects in object-oriented design.The different patterns and principles used in GRASP are: Controller, Creator, Indirection, Information Expert, High Cohesion, Low Coupling, Polymorphism, Protected Variations, and Pure Fabrication.

Gello Expression Language <=SEP=> The GELLO Expression Language was started in 2001 and introduced in 2002; in 2005, GELLO was adopted as an international standard by Health Level Seven International and ANSI for a decision support language. GELLO Release 2 was completed and approved by ANSI in June 2010.The GELLO specifications have been developed in coordination with the HL7 Clinical Decision Support TC (CDSTC)GELLO is a class-based object-oriented programming language and a relative of the Object Constraint Language (OCL).

Groovy (programming language) <=SEP=> Groovy  is an object-oriented programming language for the Java platform. It is a dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk. It can be used as a scripting language for the Java Platform, is dynamically compiled to Java Virtual Machine (JVM) bytecode, and interoperates with other Java code and libraries. Groovy uses a Java-like curly-bracket syntax.

Haskell (programming language) <=SEP=> Haskell /ˈhæskəl/ is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry.

Io (programming language) <=SEP=> Io is a pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript. Io has a prototype-based object model similar to the ones in Self and NewtonScript, eliminating the distinction between instance and class. Like Smalltalk, everything is an object and it uses dynamic typing. Like Lisp, programs are just data trees. Io uses actors for concurrency.Remarkable features of Io are its minimal size and openness to using external code resources.

JADE (programming language) <=SEP=> JADE is a proprietary object-oriented software development and deployment platform product from the New Zealand-based Jade Software Corporation, first released in 1996.

J (programming language) <=SEP=> The J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui, is a synthesis of APL (also by Iverson) and the FP and FL function-level languages created by John Backus.To avoid repeating the APL special-character problem, J requires only the basic ASCII character set, resorting to the use of the dot and colon as "inflections" to form short words similar to digraphs.

Java (programming language) <=SEP=> Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.

Karel (programming language) <=SEP=> Karel is an educational programming language for beginners, created by Richard E. Pattis in his book Karel The Robot: A Gentle Introduction to the Art of Programming. Pattis used the language in his courses at Stanford University, California. The language is named after Karel Čapek, a Czech writer who introduced the word robot.

LePUS3 <=SEP=> LePUS3  is a language for modelling and visualizing object-oriented (Java, C++, C#) programs and design patterns.  It is defined as a formal specification language, formulated as an axiomatized subset of First-order predicate logic.  A diagram in LePUS3 is also called a Codechart. LePUS, the name of the first version of the language, is an abbreviation for Language for Pattern Uniform Specification.

Lisaac <=SEP=> Lisaac is a statically typed prototype-based language conceived by Benoît Sonntag, in which the Isaac operating system is being written.The developers of Lisaac also included features such as dynamic inheritance from Self and contract programming from Eiffel. Despite being statically typed, it also shows homoiconic properties. The Lisaac transpiler produces optimized ANSI C code.

List of object-oriented programming languages <=SEP=> This is a list of notable object-oriented programming languages, which are also listed in Category:Object-oriented programming languages.

List of programming languages by type <=SEP=> This is a list of programming languages groups.

Logtalk <=SEP=> Logtalk is an object-oriented logic programming language that extends and leverages the Prolog language with a feature set suitable for programming in the large. It provides support for encapsulation and data hiding, separation of concerns and enhanced code reuse.

Mixin <=SEP=> In object-oriented programming languages, a mixin is a class that contains a combination of methods from other classes. How such a combination is done depends on the language. If a combination contains all methods of combined classes, it is equivalent to multiple inheritance.

Modula-3 <=SEP=> In computer science, Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+. While it has been influential in research circles (influencing the designs of languages such as Java, C#, and Python) it has not been adopted widely in industry.

Modular programming <=SEP=> Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.A module interface expresses the elements that are provided and required by the module. The elements defined in the interface are detectable by other modules.

Nemerle <=SEP=> Nemerle is a general-purpose high-level statically typed programming language designed for platforms using the Common Language Infrastructure (.NET/Mono). It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful metaprogramming system. In June 2012, the core developers of Nemerle were hired by the Czech software development company JetBrains.

NetRexx <=SEP=> NetRexx is an open source, originally IBM's, variant of the REXX programming language to run on the Java virtual machine.  It supports a classic REXX syntax, with no reserved keywords, along with considerable additions to support object-oriented programming in a manner compatible with Java's object model, yet can be used as both a compiled and an interpreted language, with an option of using only data types native to the JVM or the NetRexx runtime package.

O:XML <=SEP=> o:XML is an open source, dynamically typed, general-purpose object-oriented programming language based on XML-syntax.  It has threads, exception handling, regular expressions and namespaces.  Additionally o:XML has an expression language very similar to XPath that allows functions to be invoked on nodes and node sets.

OCaml <=SEP=> OCaml (/oʊˈkæməl/ oh-KAM-əl), originally known as Objective Caml, is the main implementation of the Caml programming language, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez and others in 1996. OCaml extends the core Caml language with object-oriented constructs.OCaml's toolset includes an interactive top level interpreter, a bytecode compiler, a reversible Debugger, a package manager (OPAM), and an optimizing native code compiler.

Object-Oriented Turing <=SEP=> Object-Oriented Turing is an extension of the Turing programming language and a replacement for Turing Plus created by Ric Holt of the University of Toronto, Canada, in 1991. It is imperative, object-oriented, and concurrent. It has modules, classes, single inheritance, processes, exception handling, and optional machine-dependent programming.There is an integrated development environment under the X Window System and a demo version.

Object-based language <=SEP=> The term "object-based language" may be used in a technical sense to describe any programming language that uses the idea of encapsulating state and operations inside "objects". Object-based languages need not support inheritance or subtyping, but those that do are also said to be "object-oriented".

Object-oriented programming <=SEP=> Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A distinguishing 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").

Object-relational database <=SEP=> An object-relational database (ORD), or object-relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inheritance are directly supported in database schemas and in the query language.

ObjectLOGO <=SEP=> ObjectLOGO is a variant of the programming language Logo with object-oriented programming extensions and lexical scoping. Version 2.7 is sold by Digitool, Inc.  It is no longer being developed or supported, and does not run on versions of the Mac operating system after version 7.5.

Object Lisp <=SEP=> Object Lisp was a computer programming language, a dialect of the Lisp language. It was an object-oriented extension for the Lisp dialect Lisp Machine Lisp, designed by Lisp Machines, Inc.

Object Oberon <=SEP=> Object Oberon is a programming language which is based on the Oberon programming language with features for object-oriented programming. Oberon-2 was essentially a redesign of Object Oberon.

Object REXX <=SEP=> The Object REXX programming language is an object-oriented scripting language initially produced by IBM for OS/2. It is a follow-on to and a significant extension of the "Classic Rexx" language originally created for the CMS component of VM/SP and later ported to MVS, OS/2 and PC DOS.

Object database <=SEP=> An object database (also object-oriented database management system) is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are table-oriented.  Object-relational databases are a hybrid of both approaches.Object databases have been considered since the early 1980s.

Object type (object-oriented programming) <=SEP=> In computer science, an object type (a.k.a. wrapping object) is a datatype which is used in object-oriented programming to wrap a non-object type to make it look like a dynamic object.Some object-oriented programming languages make a distinction between reference and value types, often referred to as objects and non-objects on platforms where complex value types don't exist, for reasons such as runtime efficiency and syntax or semantic issues.

Objective-C <=SEP=> Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It is the main programming language used by Apple for the OS X and iOS operating systems, and their respective application programming interfaces (APIs), Cocoa and Cocoa Touch.The programming language Objective-C was originally developed in the early 1980s.

Objective-J <=SEP=> Objective-J is a programming language developed as part of the Cappuccino web development framework. Its syntax is nearly identical to the Objective-C syntax and it shares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small, superset; adding traditional inheritance and Smalltalk/Objective-C style dynamic dispatch.

Outline of computer programming <=SEP=> The following outline is provided as an overview of and topical guide to computer programming:Computer programming – process that leads from an original formulation of a computing problem to executable computer programs.

Perl <=SEP=> Perl is a family of high-level, general-purpose, interpreted, dynamic programming languages. The languages in this family include Perl 5 and Perl 6.Though Perl is not officially an acronym, there are various backronyms in use, the most well-known being "Practical Extraction and Reporting Language". Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions.

Persistor.NET <=SEP=> Persistor.NET is an object-oriented persistence framework which provides persistence for pure object-oriented development. Persistor .NET saves, retrieves, and deletes pure .NET Framework object graphs within a SQL Server 2005 or SQL Server Express database.

Programming paradigm <=SEP=> A programming paradigm is a fundamental style of computer programming, serving as a way of building the structure and elements of computer programs.

Prograph <=SEP=> Prograph is a visual, object-oriented, dataflow, multiparadigm programming language that uses iconic symbols to represent actions to be taken on data. Commercial Prograph software development environments such as Prograph Classic and Prograph CPX were available for the Apple Macintosh and Windows platforms for many years but were eventually withdrawn from the market in the late 1990s.

Protocol (object-oriented programming) <=SEP=> In object-oriented programming, a protocol or interface is a common means for unrelated objects to communicate with each other. These are definitions of methods and values which the objects agree upon in order to co-operate.For example, in Java (where protocols are termed interfaces), the Comparable interface specifies a method compareTo() which implementing classes should implement.

Prototype-based programming <=SEP=> Prototype-based programming is a style of object-oriented programming in which behaviour reuse (known as inheritance) is performed via a process of cloning existing objects that serve as prototypes. This model can also be known as prototypal, prototype-oriented, classless, or instance-based programming. Delegation is the language feature that supports prototype-based programming.A fruit bowl serves as one example.

Purely functional <=SEP=> In computing, algorithms, data structures, or programming languages are called purely functional if they guarantee the (weak) equivalence of call-by-name, call-by-value and call-by-need evaluation strategies, often by excluding destructive modifications (updates) of entities in the program's running environment.

Python (programming language) <=SEP=> Python is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java. The language provides constructs intended to enable clear programs on both a small and large scale.Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles.

Q (equational programming language) <=SEP=> Q (short for equational programming language) is an interpreted, interactive functional programming language created by Albert Gräf at the University of Mainz in Germany. Q programs are just collections of equations which are used to evaluate expressions in a symbolic fashion.

Quintiq <=SEP=> Quintiq is a Dutch company develops planning, scheduling and supply chain optimization software.  The company is headquartered in 's-Hertogenbosch and its North American headquarters are in Radnor, Pennsylvania.

ROOP (programming language) <=SEP=> ROOP is a multiparadigm programming language targeted at AI applications created at the Chengdu University of China. It combines rule-based, procedural, logical and object-oriented programming techniques.

Ruby (programming language) <=SEP=> Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.According to its authors, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp. It supports multiple programming paradigms, including functional, object-oriented, and imperative. It also has a dynamic type system and automatic memory management.

Rust (programming language) <=SEP=> Rust is a general-purpose, multi-paradigm, compiled programming language developed by Mozilla Research.  It is designed to be a "safe, concurrent, practical language", supporting pure-functional, concurrent-actor, imperative-procedural, and object-oriented styles.The language grew out of a personal project by Mozilla employee Graydon Hoare. Mozilla began sponsoring the project in 2009 and announced it for the first time in 2010.

Scala (programming language) <=SEP=> Scala (/ˈskɑːlɑː/ SKAH-lah) is a programming language for general software applications. Scala has full support for functional programming and a very strong static type system. This allows programs written in Scala to be very concise and thus smaller in size than other general-purpose programming languages.

Scriptol <=SEP=> Scriptol is an object-oriented programming language  that allows users to declare an XML document as a class. The language is universal and allows users to create dynamic web pages, as well as create scripts and binary applications.

Self (programming language) <=SEP=> Self is an object-oriented programming language based on the concept of prototypes. Self was a dialect of Smalltalk, being dynamically typed and using just-in-time compilation (JIT) as well as the prototype-based approach to objects: it was first used as an experimental test system for language design in the 1980s and 1990s. In 2006, Self was still being developed as part of the Klein project, which was a Self virtual machine written fully in Self.

Simula <=SEP=> Simula is a name for two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is a fairly faithful superset of ALGOL 60.Simula 67 introduced objects, classes, inheritance and subclasses, virtual procedures, coroutines, and discrete event simulation, and features garbage collection.

Smalltalk <=SEP=> Smalltalk is an object-oriented, dynamically typed, reflective programming language.

Smalltalk YX <=SEP=> Smalltalk YX (Syx) is an open source programming language. It's an implementation of the Smalltalk-80 standard.Syx is written in the C programming language and has the following purposes: Readable code Flexibility through easy creation of plugins Highly portable Optimized Modern Embeddable in C programs Easy to use, powerful and well-structured environment Small

Snit <=SEP=> Snit is an object-oriented extension to the Tcl programming language. Snit is a recursive acronym that stands for "Snit's Not Incr Tcl." Snit is a pure Tcl object and megawidget system. It is unique among Tcl object systems in that it is based not on inheritance but on delegation. Object systems based on inheritance only allow inheriting from classes defined using the same system, which is limiting.

Squeak <=SEP=> The Squeak programming language is a dialect of Smalltalk. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers. Its development was continued by the same group at Walt Disney Imagineering, where it was intended for use in internal Disney projects.Squeak is available for many platforms, and programs produced on one platform run bit-identical on all other platforms.

TOM (object-oriented programming language) <=SEP=> TOM was an object-oriented programming language developed in the 1990s that built on the lessons learned from Objective-C.  The main purpose of TOM was to allow for "unplanned reuse" of code via a well-developed extension mechanism.

This (computer programming) <=SEP=> this, self, and Me are keywords used in some computer programming languages to refer to the object, class, or other entity that the currently running code is part of.  The entity referred to by these keywords thus depends on the execution context (such as which object is having its method called).  Different programming languages use these keywords in slightly different ways.

Type system <=SEP=> In programming languages, a type system is a collection of rules that assign a property called type to various constructs a computer program consists of, such as variables, expressions, functions or modules.  The main purpose of a type system is to reduce possibilities for bugs in computer programs by defining interfaces between different parts of a computer program, and then checking that the parts have been connected in a consistent way.

Urbiscript <=SEP=> urbiscript is a programming language for robotics.  It features syntactic support for concurrency and event-based programming.  It is a prototype-based object-oriented scripting language.

Virtual function <=SEP=> In object-oriented programming, a virtual function or virtual method is a function or method whose behavior can be overridden within an inheriting class by a function with the same signature. This concept is an important part of the polymorphism portion of object-oriented programming (OOP).