Today there is uncountable number of programming languages. Some are useless and some is a must for any programmer. By time a compatibility problems arise. This leads to an idea of programming language for all programmers and all types of applications on all types of platforms. This idea proposed as Universal Programming Language (Upl).
Programming languages are the only way of communication between programmers and the computer. Each programming language has its own syntax and semantic. The syntax is the sentence structure. The semantic is the meaning of the sentence. Programmers should be able to read, write and manipulate such sentences in order to write a program.
A program is a set of sentences written in some programming language then compiled or interpreted to machine code, in order to be executed.
Upl aims to provide a perfect syntax and semantics. Which are easy to be understand by the programmers and powerful enough to produce high quality programs.
Analysis
"Universal":
Universal is an adjective for a noun that is a general for everything.
"Universal language":
Universal language is a language that is used by everyone in everywhere, as a general way of communication.
"Universal programming language":
Universal programming language is a programming language that is can be used by any programmer to write any kind of programs.
Programmers and the language itself:
English as "Universal language":
English is one of most spoken languages in the world. It can be found spoken and written everywhere. This vast spreading of English language makes a big problem for non English peoples. They want their languages to be universal ones. As example, French believe that their language is more powerful, elegant and flexible language and they are trying to make it a universal one.
English as "Universal programming language":
Most of programming languages are written in English characters with respect for English syntax and semantic. This makes programming languages more understandable by programmers.
A problem similar to the previous one has been arising. Programmers want to program in their mother tongue language. Moreover some freaks want to program in their own languages.
Programs that can be written by the language:
Universal programming language must be able to allow programmers to write any type of programs. It must produce system level, web services, real systems, phones, desktop, games, etc ….
In fact there is no programming language that can do all of those programs. But there are many programming languages to do each type. C and C++ are most programming languages used for operating systems, system level programs and games. Java and Dot Net are both famous at desktop application level. Assembly is unbeatable at real system level. And so on.
Unfortunately, each programming language is designed for specific domains and ranges. Domains are the platforms and ranges are the applications types. So we can not use assembly to create web pages and we can not use html to produce real time systems.
Problems arise:
- Everybody wants to program in his suitable language
- Each Programming language has a domain and a range
Implementation:
By the time being there is one simple freaky implementation of the universal programming language. It is called upl_2. It is an enhanced version of upl_1 project. We will discus the original upl project before getting cross upl_2.
Upl_1
Latest release is upl_0.1.4 alpha
Available at http://upl.sourceforge.net
Definition
Universal Programming Language is a platform that helps new comers and children to learn programming.
This platform helps to create programming languages for all languages and all purposes.
Goals
- provide a Multilanguage programming language
- language for who do not speak English, non IT major students and school students
Work Method
- Language engine load the language definition from language definition file
- Language engine spread the language definition for the whole system
- Programmer writes his code with respect to loaded language definition
- Check engine checks the written code for any errors
- Upl compiler will Convert upl language to java
- Java compiler will Compile java files to byte code
- Jar creator will pack the class files in a jar file

Advantages of UPL_1
- Programmer can change the programming language keywords for his own keyword
- Keywords can be written in any utf-8 supported languages. Such as Arabic, Hebrew, French, etc.
- Easy syntax and semantic
- Upl and it is output are operating system independent, written using java
Disadvantages of UPL_1
- Programmer can not change syntax nor semantic
- Output limited to simple desktop applications
- Little features comparing to famous high level languages
Conclusion
Upl_1 is a very promising project. It needs to add a more advanced language engine which allows changing of keywords syntax and semantic. Also more features should be copied from java by extending upl to java compiler. Finally, with more time and effort upl can override the entire disadvantages that it has, Except the application type limitation, where a new design should be adapted.