Introduction

Nowadays, science is greatly dependent on computer applications; however, there are some limitations in developing applications that are able to fulfill different goals. Ideas for applications may be proposed by any individual. However, only programmers are able to turn the ideas into actual applications. Unfortunately, due to the limited number of skilled programmers, not all ideas will become practical applications and many will be forgotten.

Although, the methods of programming have been evolved and various programming languages exist, but applications development requires certain expertise; a considerable effort is needed to achieve the goals of different sciences through computer applications.

Programming languages, software development modeling and even software optimizing [1], cannot use the potentials of a complete application. To develop an application, a programmer needs to write great many lines of codes while, more than likely, a considerable part of the code might have been developed and used by other programmers in other applications.

Therefore, by reusing the existing objects of an application and extending them to fulfill more requirements, non-professional developers will gain the opportunity to develop new applications by combining different objects to achieve different goals without requiring a deep knowledge of programming.
If the applications with such characteristics will be able to communicate through a network such as internet, even more sophisticated and larger applications can be developed. This characteristic will enable us to share the hardware across the network, and distribute and run the commands in a parallel fashion on several hardware’s.

Considering the fact that a user is able to combine different objects of different applications to develop a new one, it should also be possible that an application can perform this task without any human interference. To accomplish this purpose, fundamental changes in the structure of the existing products is required.

Simorgh programming language is a general purpose language which is able to generate structured applications. Such applications can share their objects, data, pointers, and commands among themselves. Simorgh allows users to develop new objects in their native languages.