Paradigm(s) imperative
Appeared in 2014; 4 years ago (2014)
Designed by Beate Jost, Reinhard Budde, Kostadin Cvejoski, Daniel Pyka
Developer Fraunhofer IAIS [1]
Stable release 0.1.1 (June 13, 2015; 3 years ago (2015-06-13))
Typing discipline dynamic
Major implementations NEPO
Influenced by Logo, Smalltalk, Scratch, MIT App Inventor, Blockly
Implementation language JavaScript (NEPO 1.0)
OS cloud-based
License Apachev2

NEPO® is a free open-source meta-programming languague that can be used by students, scholars, teachers, and other intersted persons. NEPO has been developed by ( Fraunhofer IAIS) within the project "Open Roberta". NEPO has a visual representation and can be programed by "drag and dop", so even novice programmers can be adressed. A major advantage of graphical programming is that typical syntax errors that make learning a programming language often very tedious can be avoided. NEPO allows to focus on the logical structure of the program.[1]

Origin of name

“NEPO” represents OPEN backward. Sometimes NEPO will be interpreted as New Easy Online Programming.


NEPO is inspired by Scratch_(programming_language) and Blockly

Educational Use

File:Open Roberta Lab.png

NEPO can be used to program Lego Mindstorms EV3 robots. NEPO will be used as main programming languague within the european-wide education initiative Roberta - Leraning with Robots. These use NEPO to train teachers, because of its relative ease to make interesting programmes as well as because skills learnt through NEPO can be applied to other basic programming languages like Python (programming language) and Java (programming language).[2]

User interface

The NEPO user interface is called Open Roberta Lab. In the left area of the sceen there are the available block categories. In the Beginner-mode there are eight categories available. The beginner mode is pre-defined and can be switched into Experts-mode within the main menu settings.[3]

NEPO Program

File:NEPO program Hello World.png

There are multiple ways of creating a NEPO program but each program has to start at the red collored main programming block called »program-start«. This block is always added by default in the Open Roberta Lab workspace. The first block that a client wants to use is connected with the »sequence connector« of the program-start block. The programming is done using graphical building blocks that are assembled into a sequence of functions. So that the robot can understand and execute the program, the NEPO blocks are then converted into machine code and transferred to the robot. Since in this case different programming languages are supported, in addition to the LEGO MINDSTOMRS system even more robotic systems can be integrated.

NEPO block categories

All available blocks are listed and categorized as the Action, Sensors, Control, Logic, Math, Text, Colours, Variables, Functions and Massages as shown in the table below.

Category Notes    Category Notes
  Action Includes blocks with which the robot performs an action directly.      Text Contains event handlers placed on the top of each group of blocks
  Sensors Contains blocks for all standard sensors of the EV3 system.   Colours Standard colours block
  Control includes blocks with which the program sequence can be controlled. The category includes the following blocks   Variables
  Logic With the »logic« blocks, conditions ca be created. With this condition you can iterrelate states, values, and events with each other.   Functions
  Math Mathematical operators and parameter block   Massages

NEPO sequenz connector

File:NEPO sequenz connector.png

The sequence connector is triangle at the bottom of the block, and this triangle will become yellow as soon as a suitable block is in close proximity of the block.

NEPO input / output connector

File:NEPO typ check input connectors.png

Depending on the block different values can be passed to a block. The type of the value can be identified by the colored compounds (including »connectors« called) of a block. In the chapter »block catagory« you can see the different values a block can have. Only if the colors of the input and the output connector match, these blocks can be connected.

A block may optionally also pass a value (only one!) to another block. These blocks have colored output connectors. Only if the colors of the input and the output connector are the same, these blocks can be connected.

File:NEPO typ check output connectors.png

In total there six input and output types within NEPO. These types can have the following values:

  • Logical value (light blue)
  • Number (Dark Blue)
  • String / text (green)
  • Color (yellow)
  • List (Purple)
  • Connection (Pink)

NEPO a Meta-Programming language


  1. Open Roberta paper. Retrieved on 25 June 2015.
  2. Open Roberta Lab: A better way to program your EV3?. Retrieved on 25 June 2015.
  3. Open Roberta Lab. Retrieved on 25 June 2015.

External links

This article uses material from the Wikipedia article Draft:NEPO® is a free open-source meta-programming languague, that was deleted or is being discussed for deletion, which is released under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
Author(s): Eclipsed Search for "Draft:NEPO® is a free open-source meta-programming languague" on Google
View Wikipedia's deletion log of "Draft:NEPO® is a free open-source meta-programming languague"