HOME





Urbiscript
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. It is dynamic: name resolution is performed during the program execution ( late binding); slots (member variables) can be added/removed at runtime, and even prototypes ( superclasses) of an object can be changed at runtime. Memory management is performed by reference counting. Tightly bound to the Urbi platform it supports seamless integration of C++/Java components. Syntax and semantics Inspiration From the syntactical point of view, urbiscript belongs to the C-family of programming languages. Its prototype-based object-oriented design was influenced by the Self and the Io programming languages. It is designed to program, but also interact with robots; as such, it is influenced by Unix shells and other languages that provide a read-eval-print loop style interactive toplevel. ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


URBI
Urbi is an Open-source software, open-source cross-platform software computing platform written in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also includes the urbiscript Orchestration (computing), orchestration language which is a parallel and event-driven script language. UObject components can be plugged into urbiscript and appear as native objects that can be scripted to specify their interactions and data exchanges. UObjects can be linked to the urbiscript interpreter, or executed as autonomous processes in "remote" mode. The urbiscript language The urbiscript language was created in 2003 by Jean-Christophe Baillie in the Cognitive Robotics Lab of ENSTA, Paris. It has been actively and further developed in the industry through the Gostai company founded in 2006. It is now an open source project, with a BSD license, available on GitHub. The urbiscript language can be best describ ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Jean-Christophe Baillie
Jean-Christophe Baillie (; born 28 April 1974) is a French scientist and entrepreneur. He founded the ENSTA ParisTech Robotics Lab where he worked on developmental robotics and computational evolutionary linguistics. While at ENSTA, he designed the urbiscript programming language to control robots, which became the base technology of Gostai, a robotics startup he created in 2006, which was acquired by Aldebaran Robotics in 2012. Jean-Christophe Baillie holds a degree from the École Polytechnique in Paris where he studied computer science and theoretical physics. He did his PhD in Artificial Intelligence and Robotics at Université Pierre & Marie Curie in co-supervision with Luc Steels at the Sony Computer Science Lab in Paris. Robotics Laboratory at ENSTA Jean-Christophe Baillie joined ENSTA ParisTech after his PhD in 2001. There, he founded the Cognitive Robotics Lab to focus the research activity of ENSTA on developmental robotics, using mostly Aibo robots from Sony. ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Multi-paradigm Programming Language
Programming languages can be grouped by the number and types of Programming paradigm, paradigms supported. Paradigm summaries A concise reference for the programming paradigms listed in this article. * Concurrent programming language, Concurrent programming – have language constructs for concurrency, these may involve multi-threading, support for distributed computing, message passing, shared resources (including shared memory), or Futures and promises, futures ** Actor model, Actor programming – concurrent computation with ''actors'' that make local decisions in response to the environment (capable of selfish or competitive behaviour) * Constraint programming – relations between variables are expressed as constraints (or constraint networks), directing allowable solutions (uses constraint satisfaction or simplex algorithm) * Dataflow, Dataflow programming – forced recalculation of formulas when data values change (e.g. spreadsheets) * Declarative programming – describes ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Late Binding
In computing, late binding or dynamic linkage—though not an identical process to dynamically linking imported code libraries—is a computer programming mechanism in which the method being called upon an object, or the function being called with arguments, is looked up by name at runtime. In other words, a name is associated with a particular operation or object at runtime, rather than during compilation. The name dynamic binding is sometimes used, but is more commonly used to refer to dynamic scope. With early binding, or static binding, in an object-oriented language, the compilation phase fixes all types of variables and expressions. This is usually stored in the compiled program as an offset in a virtual method table ("v-table"). In contrast, with late binding, the compiler does not read enough information to verify the method exists or bind its slot on the v-table. Instead, the method is looked up by name at runtime. The primary advantage of using late binding in ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Exception Handling
In computing and computer programming, exception handling is the process of responding to the occurrence of ''exceptions'' – anomalous or exceptional conditions requiring special processing – during the execution of a program. In general, an exception breaks the normal flow of execution and executes a pre-registered ''exception handler''; the details of how this is done depend on whether it is a hardware or software exception and how the software exception is implemented. Exceptions are defined by different layers of a computer system, and the typical layers are CPU-defined interrupts, operating system (OS)-defined signals, programming language-defined exceptions. Each layer requires different ways of exception handling although they may be interrelated, e.g. a CPU interrupt could be turned into an OS signal. Some exceptions, especially hardware ones, may be handled so gracefully that execution can resume where it was interrupted. Definition The definition of an excep ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

While Loop
In most computer programming languages, a while loop is a control flow Statement (computer science), statement that allows code to be executed repeatedly based on a given Boolean data type, Boolean condition. The ''while'' loop can be thought of as a repeating Conditional (computer programming), if statement. Overview The ''while'' construct consists of a block of code and a condition/expression. The condition/expression is evaluated, and if the condition/expression is ''true'', the code within all of their following in the block is executed. This repeats until the condition/expression becomes False (logic), false. Because the ''while'' loop checks the condition/expression before the block is executed, the control structure is often also known as a pre-test loop. Compare this with the do while loop, ''do while'' loop, which tests the condition/expression ''after'' the loop has executed. For example, in the languages C (programming language), C, Java (programming language), Java ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Foreach Loop
In computer programming, foreach loop (or for-each loop) is a control flow statement for traversing items in a collection. is usually used in place of a standard loop statement. Unlike other loop constructs, however, loops usually maintain no explicit counter: they essentially say "do this to everything in this set", rather than "do this times". This avoids potential off-by-one errors and makes code simpler to read. In object-oriented languages, an iterator, even if implicit, is often used as the means of traversal. The statement in some languages has some defined order, processing each item in the collection from the first to the last. The statement in many other languages, especially array programming languages, does not have any particular order. This simplifies loop optimization in general and in particular allows vector processing of items in the collection concurrently. Syntax Syntax varies among languages. Most use the simple word for, although other use t ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

For Loop
In computer science, a for-loop or for loop is a control flow Statement (computer science), statement for specifying iteration. Specifically, a for-loop functions by running a section of code repeatedly until a certain condition has been satisfied. For-loops have two parts: a header and a body. The header defines the iteration and the body is the code executed once per iteration. The header often declares an explicit For loop#Loop counters, loop counter or loop Variable (computer science), variable. This allows the body to know which iteration is being executed. For-loops are typically used when the number of iterations is known before entering the loop. For-loops can be thought of as shorthands for while-loops which increment and test a loop variable. Various keywords are used to indicate the usage of a for loop: descendants of ALGOL use "", while descendants of Fortran use "". There are other possibilities, for example COBOL which uses . The name ''for-loop'' comes from the w ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

If-then-else
In computer science, conditionals (that is, conditional statements, conditional expressions and conditional constructs) are programming language constructs that perform different computations or actions or return different values depending on the value of a Boolean expression, called a ''condition''. Conditionals are typically implemented by selectively executing instructions. Although dynamic dispatch is not usually classified as a conditional construct, it is another way to select between alternatives at runtime. Terminology Conditional statements are imperative constructs executed for side-effect, while conditional expressions return values. Many programming languages (such as C) have distinct conditional statements and conditional expressions. Although in pure functional programming, conditional expressions do not have side-effects, many languages with conditional expressions (such as Lisp) support conditional side-effects. If–then(–else) The if–then or if� ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Read–eval–print Loop
A read–eval–print loop (REPL), also termed an interactive toplevel or language shell, is a simple interactive computer programming environment that takes single user inputs, executes them, and returns the result to the user; a program written in a REPL environment is executed piecewise. The term usually refers to programming interfaces similar to the classic Lisp machine interactive environment. Common examples include command-line interface, command-line shell (computing), shells and similar environments for programming languages, and the technique is very characteristic of scripting languages. History In 1964, the expression ''READ-EVAL-PRINT cycle'' is used by L. Peter Deutsch and Edmund Berkeley for an implementation of Lisp (programming language), Lisp on the PDP-1. Just one month later, Project Mac published a report by Joseph Weizenbaum (the creator of ELIZA, the world's first chatbot) describing a REPL-based language, called OPL-1, implemented in his SLIP (program ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Unix Shells
A Unix shell is a command-line interpreter or shell Shell may refer to: Architecture and design * Shell (structure), a thin structure ** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses Science Biology * Seashell, a hard outer layer of a marine ani ... that provides a command line user interface for Unix-like operating systems. The shell is both an interactive command language and a scripting language, and is used by the operating system to control the execution of the system using shell scripts. Users typically interact with a Unix shell using a terminal emulator; however, direct operation via serial hardware connections or Secure Shell are common for server systems. All Unix shells provide filename Wildcard character, wildcarding, Pipeline (Unix), piping, here documents, command substitution, Variable (programming), variables and control flow, control structures for Conditional (programming), condition-testing and iteration. ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

C (programming Language)
C (''pronounced'' '' – like the letter c'') is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted Central processing unit, CPUs. It has found lasting use in operating systems code (especially in Kernel (operating system), kernels), device drivers, and protocol stacks, but its use in application software has been decreasing. C is commonly used on computer architectures that range from the largest supercomputers to the smallest microcontrollers and embedded systems. A successor to the programming language B (programming language), B, C was originally developed at Bell Labs by Ritchie between 1972 and 1973 to construct utilities running on Unix. It was applied to re-implementing the kernel of the Unix operating system. During the 1980s, C gradually gained popularity. It has become one of the most widely used programming langu ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]