[
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