Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[soc-dev] Generic Action Code Language project proposal

Hi everyone ,

I am Satyender Yadav , a sophomore at IIT (Indian Institute of Technology ) , Delhi majoring in Computer Science and Engineering . From high school studies i was passionate and interested in programming language implementation and design . I am intending to work on Generic Action Code Language project idea on eTrice project as GSoC project during this summer . I have applied in eclipse for the same project at GSoC's site . The link to my proposal is http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/hckkid/1 . The wiki page of project is http://wiki.eclipse.org/ETrice/GSoC/2012/GACL . The project aims at creating a language to describe the execution code for ROOM models in eTrice , which is currently stored in strings containing the source in target language . The target language is currently one of Java , C/C++ . In eTrice we create a ROOM model then write its execution code . After that we use a converter to convert it into target language . ETrice project is in general of enterprise level use and having its own detail code language (GACL) the use of etrice surely grow in a little span of time . GACL is intended to be as easy to code as possible with almost every common feature seen in imperative languages like Java and C/C++ . With such a language not only it would become easy to work with eTrice and provide execution code for ROOM models it would also broaden community using eTrice significantly . Currently such modeling softwares and plug-ins are only used by developers studying them or by enterprise users . But no one has used them for regular coding or writing program for a particular state machine (May be with layers and hierarchy ) . It would open a great coding opportunity for those who just decide state machine for a program and rest is all I/O or actions i.e. functions . So it makes a normal programmer to have a thought about using eTrice for generating code in target language . A good example to take is assume that you are a programmer competing in a coding contest on sites like topcoder or one like facebook hacker cup ( just for example ) . In such cases generally organization organizing contest gives I/O specifications to participants and asks them to write a code according to those specifications . In such a case if we use GACL integrated in eTrice the programmer whould just specify I/O specs on ports . Then he will use GACL to code up execution code . If he can break his algorithm to solve problem in few FSM (Finite State Machines) , If will use ROOM model for this purpose and execution code wherever required . In this manner the task breaks down in small steps and he can do testing without worrying about I/O . In etrice we would be providing a model level debugging which is far more convenient than language level debugging . So after all the programmer in our case would be having efficient and better code in lesser time than one who simply usage the target language . It was just one use there are plenty of features and usage one would be able to find once this project finishes . The features list of GACL is as below :-
  • Variable Declarations ( with optional initializers ) and Function Declaration .
  • Comparison & arithmetic expressions .
  • Basic types , and user defined types .
  • If-else blocks and ladders .
  • For , while , for each , enhanched for each .
  • Support for iterators (that can be used by for each loops ) .
  • Function Calls with arguments & diff types i.e. ref/value/address .
  • type checking and as much as possible implicit type casting .
  • Casts corresponding to static casts in C .

The poject proposal gives weekly schedule of doing this project over summer . It is very well insured that all mentioned features get finished on time . One can ensure this from schedule i have made , i have kept roughly two weeks before deadline of GSoC in reserve . Henrik Rentz-Reichert would be mentoring me during summer on this project . I have talking with him through emails and have been in his touch for around a month and have already started my work on this project with full dedication , without focus on other things . I have no other plans other than GSoC on this project and have applied only and only for this project in GSoC . The community will surely be heavily benefited by this project if gets done as etrice is only one open source plugin of its own kind . More benefits for programmers and community are mentioned in proposal . I am doing all my work on https://www.github.com/hckkid/my-eTrice-work which is open source . I have wanted from a long time to contribute to open source community . 

Now regrading why i am the best choice for this project i have given my study information in proposal which i am writing below again .

Relevant courses taken and work in these courses

CSL102 : Introduction to programming (Rather it was more of functional programming as i have done programming at school)
CSL201 : Data Structure and Algorithms
CSL302 : Programming Languages
CSP301 : Computer Science Practices (A practical course intended towards handling big projects)
CSL316 : Digital Hardware Design
In CSL102, I had implemented RSA encryption in python.
As an assignment for CSL302, I had designed and implemented a tiny Prolog interpreter and compiler using ML-lex and ML-yacc .
In CSL201 i have made binary search trees , general trees , trees used for data compression , heap , traversals on trees graphs , dfs(depth first search) and bfs(breadth first search) on graphs , dijkstra , prim-jarnik and kruskal's algorithms on graphs , evrything above mentioned in JAVA with generic classes , functions and interfaces .

I am very good at programming language design and implementation . I have done implementation of Gentzen System of Logic in Standard ML which included development of a parser , tokenizer and validity tester function (which work as executer) . Importantly i have studied static analysis and implemented type checking rule . It was a part of assignments in CSL302 which i am currently studying during this semester . I have studied the Hopcroft & Ullman's introduction to automata theory and familiar with most of programming languages concepts . In Digital Hardware Design (studying currently) course we make state machines and models for system most of time , which is also done by ROOM also . So i find it easy to understand ROOM . I have made Big Number package with fast multiply and divide , Multiplayer carrom over lan and Institute room booking system in C ( jointly with my partner in course CSP301 as assignments with work equally divided) . It made me handy with C(imperative programming) and SVN (version controlling and collaboration) skills . I am expert in Java as it can be seen from my work in CSL201 course . I think the above mentioned work and knowledge makes me a perfect choice for this project .

Last but not least if you still think that this project is not good for sophomores , i can confidently say may be i have lesser experience than some other candidates but what i can't achieve because of experience will achieve by my mentors guidance and my hard work in right time .

At last i humbly request all mentors since there is ranking of project based on reviews and votes by mentors please do me every possible favor you can to make my dream and passion for programming language design and implementation for open source community take shape of GACL during this summer .

With Great Regards and thanks for this long reading ,

Satyender Yadav .

--

     SATYENDER YADAV

Back to the top