Limnor
Encyclopedia
Limnor is a generic-purpose codeless and visual
Visual programming language
In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used...

 programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

 system. The aim is to enable users
User (computing)
A user is an agent, either a human agent or software agent, who uses a computer or network service. A user often has a user account and is identified by a username , screen name , nickname , or handle, which is derived from the identical Citizen's Band radio term.Users are...

 to create computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...

 software
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....

 without directly coding in a texture programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

. It can be extended by software developers.

Vision

In the future most people should be able to do computer programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

. Visual and codeless programming can be one of possible ways to reach that goal.

When events
Event-driven programming
In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions or messages from other programs or threads.Event-driven programming can also be defined as an...

 were added to classes
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

 it enabled rapid application development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

, especially the visual development of graphic user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

. But event handling is still expressed via textual programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

s.

The idea of Limnor codeless programming
Fifth-generation programming language
A fifth-generation programming language is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer...

 is to add "Actions" to classes
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

. Adding actions to classes
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

 eliminates the need of textual programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

s, making generic purpose codeless and visual programming possible without sacrificing programming power.

A class
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

 in Object-Oriented Programming
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 is defined by properties, methods and events. Now it is enhanced by actions.

Visual programming by "properties, methods, events and actions" can be a fifth-generation programming language
Fifth-generation programming language
A fifth-generation programming language is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer...

.

People expect 5GL
Fifth-generation programming language
A fifth-generation programming language is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer...

 to be easy to use, to be visual. There are many excellent visual programming language
Visual programming language
In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used...

s and systems available now. One issue is that while each visual programming innovation has its unique advantages in some aspects it also has its limitations in other aspects. If different visual programming systems may work together then developers may take advantages of different systems and avoid the limitations. 5GL may solve the problem by being an abstraction layer for visual programming.

Following criteria may define an abstraction layer for visual programming:
  • All visual programming systems can use the abstraction layer to represent their programming results.
  • Given a programming task, if visual programming system A and visual programming system B may be used to accomplish all or parts of the task then A and B may use the same representation of the abstraction layer for the parts of the task they both can accomplish.


The first criterion requires the layer to have a wide coverage. Most programming languages, such as C/C++, Java, C#, VB, etc., meet this criterion. The first criterion does not restrict each visual programming system to have its own programming elements for unique visual representations.

The second criterion requires the layer to be an abstraction for visual programming and makes it possible for different visual programming systems to work together.

It can be deduced that when designing a 5GL to meet the criteria, such a 5GL should allow decorative expansions by individual visual programming systems. When the 5GL compiles/interprets a program, it ignores those decorative expansions.

Design

An action is defined by Action-Executer, Action-Data, and Action-Condition. An action has an owner which defines the scope of data available for the action.

There are 3 types of actions:
  • Method-Invoke Action. It is the execution of a method of a class. The Action-Executer is the class defining the method. The Action-Data is the values provided to the method parameters. Method return value can be assigned to a value (a property or a variable).
  • Property-Setting Action. It assigns a value to a property of a class. The Action-Executer is the class. The Action-Data is the value provided to the property.
  • Event-Firing Action. It fires an event of a class being developed. The Action-Executer is the class. The Action-Data is the values provided to the event parameters.

Action data can be a constant, a variable, a method/event parameter, a property of a class/variable/parameter/property, or a math expression.

An Action Condition is a math expression evaluated to a Boolean value.

A math expression is a math formula with its variables linked to constants, properties, variables, parameters, and math expressions.

A math expression must be displayed and edited graphically for codeless and visual programming and for intuitive using of the programming tools. The math expression programming tool must be able to handle math elements and functions developed by third parties to enable unlimited expansions.

Implementation

Limnor Studio is a newer implementation of codeless visual programming by "properties, methods, events and actions".

Limnor Studio implements "properties, methods, events and actions" on Microsoft .Net types. Software is developed by developing classes, just as all object-oriented programming languages do, but it is done visually. Developers derive new classes from existing classes. The existing classes are from .Net libraries made by any companies or individuals, using any programming languages or programming systems, including Limnor Studio. Limnor Studio compiler generates C# source code from visual programming representations. It uses C# compiler to generate the programming results, EXE or DLL files.

A base class for math functions provides a framework for visually display the math expressions in original math expressions in programming instead of texture formation. For example, developers do programming using formula like instead of writing something like Math.sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)). A math expression editor may handle math classes derived from the base math class, allowing third parties to develop new math functions to be used visually.

The developers use "action diagram" (flowchart
Flowchart
A flowchart is a type of diagram that represents an algorithm or process, showing the steps as boxes of various kinds, and their order by connecting these with arrows. This diagrammatic representation can give a step-by-step solution to a given problem. Process operations are represented in these...

) to form programming logics visually and intuitively.

Visual programming is better done by more than one way. Limnor Studio uses a plug-ins system to allow different visual programming systems to work together. UI designer, which represents classes in UI form and icons, is one visual programming system; object-explorer, which represents classes in tree-views, is another visual programming system. They are totally independent of each other even though they represent and work on the same class being developmented. Other independent visual programming systems can be developed and plugged in by implementing certain interfaces, for example, visual data-flow
Dataflow
Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing.-Software architecture:...

, visual control-flow
Control flow
In computer science, control flow refers to the order in which the individual statements, instructions, or function calls of an imperative or a declarative program are executed or evaluated....

, UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

, etc.

Features

Limnor Studio Major Features:
  • Visually creation of all 3 types of Actions.
  • Action diagram (flowchart)
  • Math Expression Editor
  • Directly use of software libraries made by other .Net programming languages and programming systems
  • Development work can be directly used by other .Net programming languages and programming systems
  • Generates C# source code and Visual Studio project file from visual codeless programming representation
  • Generates HTML, JavaScript, PHP, and ASPX for web development
  • Plug-ins system for independent 5-th generation programming language tools to work on "properties, methods, events and actions"
  • Class derivation
  • Method and property overriding
  • Create properties, methods and events
  • Attribute programming
  • Polymorphism by interfaces
  • High performance 2D drawing tools
  • Database programming, Visual Query Builder, Data-binding
  • Kiosk application
  • Form Designer from Microsoft Visual Studio for GUI programming
  • Object-Explorer for viewing and working on "properties, methods, events and actions" in tree-views
  • Event-Path for viewing and working on action creation and events-actions mapping. It is a kind of control-flow programming
  • Effortlessly creation of multi-threaded action executions
  • Cloud computing
  • Web development

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK