Why we are not building an Offline Compiler

Today our lives are full of computer applications (apps), technology has enabled us to get the best services through them.  We know, building such applications require us to write some programs. We start off to learn programming and become a creator of the cyber world.  The most important software or tool that we creators must have for programming are compilers and interpreters. We have overcome the barrier of learning to code through applications like Programming Hub. Now let us try to understand, how much we have come in terms of availing and accessing a suitable compiler.

But first, let us quickly refresh our concepts about compilers and interpreters.

Special Programs: Compiler & Interpreter

A compiler is a program that converts our source code into a machine level format, this format(in binary) is processed and executed by the machine to give us the corresponding output. Interpreters also do the same job, only with a different approach.

Compiler VS Interpreter
Compiler VS Interpreter

While a compiler converts all the code at once and gives it to the machine to execute, the interpreter converts the code line by line and gives one line at a time to the machine for execution.

Understanding the work

Converting the codes into machine level format requires processes like semantic analysis, parsing, lexical analysis, code optimization etc. These processes are not humanly possible to do in justified time and we can thank the compiler for, as it takes care for all of those steps.

From the level of work done, it can be easily understood that compilers are complex programs. Such programs have various components and structures for which the overall size is quite big. Mostly all compiler software packages are zipped to compress the size while distributing, but when used on a machine it takes a good amount of memory and processing capacity. Thankfully, our PCs and laptops these days are built with sufficient hardware configuration to smoothly run various compilers.

Mobile Compilers, not a good idea

Like learning platforms and other utility apps, successful compilers are not available for mobile devices in form of offline applications. For building a good and well-ordered compiler, the mobile platforms fail to follow few requirements like:

•  Compilers are installable software packages(SDK). Suitable Software Development Kit aren’t available that can work on popular mobile platforms like Android, iOS.

•  Even though the latest mobiles are offering good processing( nowadays 6 GB is available in the market), the memory and processor run-time trade-off isn’t suitable. Along with  the mandatory system applications for the mobile, running a compiler will lead to disaster(overheating, device hang etc.) as those hardware components are not capable of doing such computation.

•  Though some applications are in the market, claiming to be mobile compilers, but they fail to do most of the error detection and case processing, leading to inaccurate outputs. Such compilers are custom made by the app developers through APIs and don’t follow the standard compiler design structure.

Finding a solution

If compiling the code in your phone is necessary, then the best option is to use good online compilers. In online mode, the compilers are installed at the server-side. Generally servers are powerful in terms of computation; the most reliable compilers for each language are used in such cases. The server-side compiler executes the code and sends the output to be displayed at the user application end. This is a reliable way to compile programs. On the Programming Hub server, we have dedicated compiler systems for all our available programming languages, so that the user can learn and test, seeing the most genuine output of their code.

Popular competitive programming sites like Codechef, SPOJ, HackerRank have such online compilers for programmers to test their code. You can try Online Console Compiler, it’s available on Playstore and iTunes. It’s one of the  fastest mobile compiler application, that has support for over 20+ programming languages and an interactive IDE to comfortably write and run the code anytime.

Some good online compilers that you can use from the browser are:

 •  Compiler.Run

 •  Codechef/ide

 •  Ideone

 •  Codepad

In the future, if mobile systems are capable of doing a good amount of computation without reducing the overall performance of the device, we can think around a way for building compatible compilers. But for now, let us learn using the power of mobility and rely a bit on the computers for compilation.

We would love to hear from the readers about the topic of offline compilers and get their response about what difficulties they face for not having one, leave it in the comments below. We can help you formulating a good way to overcome the problems.

  • CommanderDrope

    Thank you TIRTHA

    I love the way you put it. For me this compiler is really useful when I’m still hungery for more Code but I’m too tired to sit on my chair to work on my PC, Compiler helpedhelps my a lot that way; I can just type the code, compile it and then send it to my Laptope all while laying down on my bed. I have a Note 4 which has 4gB of RAM so for me a Server Compiler is a really good idea. At the end of the day it’s the Code that matters right? 🙂

    Thanks again.
    #HelloWorld_ForLife

  • ARIF KHAN

    Ah ! Loved to hear from you Tirtha on this topic .Can we build efficient devices to be capable of bringing bulky PCs to our Mobiles ? Its a big idea !

    Wish you best of luck in your endeavours !

    A . Khan
    http://www.andmp.com(founder)
    crypto-in.blogspot.com

  • ARIF KHAN

    That was a nice idea !