[Q] Compiler Project Ideas - Android Software/Hacking General [Developers Only]

I'm currently studying to become a software engineer.
Each semester we have a some courses and a project we must complete, next semester the overall project theme is "Languages and Translation", in other words: code your own compiler.
A typical project suggestion is translating language "X" to language "Y" (just a subset of the language).
So I've been wondering how to make the project a bit more exciting, since programming, testing, debugging etc. all taking place in an IDE can get a little monotonous.
Some of the things I've been pondering (along with my study group) include:
1. Implementing a Compiler on Android - Compile one language to another. We are not talking about compiling code that would then run on android, most likely we won't even be generating executable files, just translating. It is quite pointless, but this is just a school project after all so don't worry too much about that.
2. A distributed compiler - like "distcc", a port of gcc that is distributed across multiple systems, but ours would be for a language other than C. I think this one might be biting off more than we can chew at the moment since it's two projects in one, but it does sound like a fun challenge.
3. Adding functional programming to an imperative language - if we made a pre-compiler of sorts we figure it's possible to support functional chunks of code in a normally imperative language.
4. Compiler for Arduino (a microcontroller platform) - Since we have prior experience with the arduino platform, we are trying to come up with a compiler relevant project that uses the arduino in some way. Could be translating another language to the C/C++ based arduino language.
Yes, only one of our suggestions so far relates to android.
If anybody has suggestions for interesting projects I would love to hear them, only important thing is that the project includes some sort of compiler, it doesn't have to relate to Android in any way.
Thanks for your time.

Related

Seeking kind advice from experianced developers

Hi
I recently had a problem with one of the discs in my spinal cord, as a result its quite possible I wont be able to return to my work as an industrial electrician. I am looking for other avenues of employment, I have quite abit of time on my hands to educate myself. I have choosen to look into the app market, after all, smart phones are in the hands of many people. Correct me if I am wrong but a well made app that is very popular could return a healthy living.
I want to make games, I see IAPs, premium version, and advertising as the main avenues for generating cash. Is this correct? Please I would like to start with the question, if hard work and effort put in, can money come out? or is it abit of a minority that makes and ultimatly a waste of time?
My next questions are, where should I start? I have ideas for games and I plan to start small so my knowledge and skills grow, first learning the fundamentals. I have begun to read guides but as was in my trade the advice of an experianced electrician was priceless!
So what software should I use, I plan to make for android then if my apps are popular I would transfer to ios and windows. Is there a base program that I could use which would make it easy to convert from to the said operating systems. Is there no way round it but to start from scratch?
What route would you recommend I take?
I think this is enough for now. Please treat me like a complete noob and have abit of patience :x
Is there any website that explains all the jargon associated with app developing?
Also if theres anything else you think I should know please tell me straight I can take it.
Thanks for any replies!
I really want to make this appen
Game and mobile app designing
Before starting with your game designing job you need to have a good knowledge about language that includes assembly, c, c++, java, Eiffel, Smalltalk, Ada, Lua and Python, Fro the language like assembly, c, c++ and java you just need to have a basic knowledge but the main software designing language that are used today are Lua and Python. One you will have a knowledge regarding the basic language then these language and software are easy to operate. Answering to your question about whether you can make money with this, believe me I started as a beginner for the game designing but then today I have a good command over all the language, software and can also use my knowledge for the mobile app designing for the android, windows and apple platform. This field definitely has money.
Most of your questions aren't of the "do this, it'll be the right way' sort.
If you want to create games, look at the different game development kits around - they will take a lot of burden of you, and might even help you to become multiplatform more easily.
Don't underestimate graphics, sound - they are important key elements of games; you might need other interested people with skills in this areas to develop a good package.
Learn how to programm. Learn how the hardware you designed so far 'thinks' - how the software works, how everything is connected.
I wish you the best, and you might need to rethink your questions, so that people can help you better when you ask more specific questions...
AliciaWinslet said:
Before starting with your game designing job you need to have a good knowledge about language that includes assembly, c, c++, java, Eiffel, Smalltalk, Ada, Lua and Python, Fro the language like assembly, c, c++ and java you just need to have a basic knowledge but the main software designing language that are used today are Lua and Python. One you will have a knowledge regarding the basic language then these language and software are easy to operate. Answering to your question about whether you can make money with this, believe me I started as a beginner for the game designing but then today I have a good command over all the language, software and can also use my knowledge for the mobile app designing for the android, windows and apple platform. This field definitely has money.
Click to expand...
Click to collapse
There are two paths you can take. The scripting (using scripting engines) like quoted post or you can chose the native route. Android is natively written in Java with the java assembly; therefor, java will give you the best performance for an android application. Many openGL engines allow the use of c++ which is the next most common mobile development style with the same performace. I have not heard much on using python for mobile applications, but i know cocos2d was originally a python engine so i know its possible. You could make a million dollar app without knowing any assembly. Assembly was used to make the most out of registers and CPUs back in the days of NES and what have you. With the new tegra processors assembly is very unnecessary, but it never hurts to know it.
My personal recommendation, for the standpoint of a game designer and game engine designer, is to learn java first (it is a simple language) or c++ (more complex but still easier then assembly). If you chose to go the scripting route I would try to find a engine that allows that, there are many. As a side note most commercial games are written in c++ or C (or they are a scripting language that compiles to c++); however in androids case everything is compiled to java assembly.
Hope this helps. There is no wrong path.

[Q] Developer's Knowledge Update Frequency

Hello all,
I have 11 years of technical experience in the IT networking (Cisco, Juniper, Microsoft) field and i am thinking about changing my current career into android development. I've read a little about Eclipse ADT, Java and XML and found it very interesting. However, the main focus of my question is not about how interesting android is but how fast is a programming career. In other words, how frequently a programming language is updated, how frequently a programmer need to acquire a new language to stay marketable, and how is the programming job security looks like.
In Networking, every 6 to 12 months, something new comes out. That didn't bother me in the past when i was young enough to keep up with the tech updates but this now bothers me at my 35th age. I am looking for a long-term profession that need not to get updated as fast as networking. Of course, everything in the computer industry is growing and changing but the frequency differs. For instance, the java code isn't so changed since 1999. XML is not an issue as i already use it to manage servers stuff. And because android just uses Java for its app development, all i need is just learning Java.
I appreciate if someone can shed some light and correct if i am wrong.
Is programming a long-term profession that doesn't need to be updated frequently?
Thanks

Questions about what programming Languages to learn for specific types of apps

I was hoping to develop apple and android apps. I hope to develop education apps and maybe games. Google says Objective C is the best language to code ios apps in but C++ is metaphorically described as an automatic car, I assume it means that it really is Objective C with functions already built for developers to use. I know Python is written in C but whats is designed for, what learn python over one of the Cs? Again, I intend to write scientific apps as practice for gaming apps. Is there any reason to learn Python and one of the Cs? Im thinking C++ is the best option but im not really sure, I assume if you know C++ you know Object oriented C.

Native vs Cross Platform

Hi everyone. I know that it's not a new subject, but I think it's a good subject to discuss about. It's the first question for any developer who wants to start a new project as everyday we can see new frameworks and languages comming up for development. After years of development now when I want to start a new project think about it again. It will be great if any one who has any experience can share it here. Because it's the experiences and times that show us if a decision was a good one or not. We can write about different parameters we considered to start a project, challenges and the results. Please feel free to add any other item you think is important to consider.
I start by myself:
Subject: A Network Communication App
Long/Short term consideration: Long term
Target platforms considered at start: android, windows
Target platforms implemented: after 2 years, android, windows, linux, (ios just newly started)
Framework: Qt5 (a cross platform framework)
Challenges: We used a crossplatform framework but as you know any OS has it's considerations and styles for development. Also different frameworks have different capacities for handling these features. In this project one of the challenges we had was the way android handles services and activities. We had to separate our UI from the logic controllers completely and implement a way to communicate between these separated processes. Also we had to implement the OS based features separately for each OS like notifications and alarms. Fortunately Qt let you use native codes for these specific features. For example you can use native java codes for showing a notification or playing system native sounds and alarms.
Pros: We implemented our UI just once and used it for all platforms. Also we implemented network and controller threads once and used them for all platforms. In this way if we need any change in our protocols or UI, we just develop them once. So we have one development team for all of them.
Result: Cross Platform with Qt was a good decision at that time for that project. Specially for a small team like what we had, because after you implement the base of a project like this you have to support it for a long time and add features to it. If we were using native codes, now we had to have separated teams for developing new features and supporting it.
It's great to read about other people stories. So Please let us know about them.
Thanks
Native vs. Cross-Platform
Native apps are developed only for a specific platform. These apps are formed in a language cooperative with the platform. Apple, for instance, prefers Objective C and Swift for iOS while Google supports Java for Android. Using these satisfactory languages, developers can create safer use of the inherent features of these platforms. A native app developed for Android will not function on iOS and vice versa.
Cross-platform apps are cooperative with various platforms. Due to the market share of Android and iOS, most cross-platform apps are confined to these two operating systems. These apps are produced in HTML and CSS since these official web technologies are platform-independent. Several cross-platform application development tools enable developers to create these apps with little trouble.

Topping Engine - Middleware for developing android and ios applications. One layout one code for both platforms.

I have recently been developing a middleware library that helps you to develop mobile applications, faster and easier than before. Finally it is live at https://topping.dev . This project started in 2012 to reduce time developing applications on android and ios platforms by creating a topping layer on mobile operating systems. All you need to know is how Android layout XML works and basic Lua or Kotlin knowledge. After developing it from time to time, I decided to make it open source. The project is in beta stage but most of the functions work. With the help of the open source community, I hope it will expand and grow and become the best of its kind. Also there are WPF and Web proof of concepts at github. http://github.com/topping-dev

Categories

Resources