Today there are tons of developers who are facing problems with shifts in programming languages ranging from backend architecture to frontend interface, though there still are quite a few who can work flexibly with all programming languages but about those who cannot Behold! Mystic is to your rescue. Addressing this problem might not be seen on a huge scale particularly in some countries, but other than that working flexibly with different languages is still an issue. So what if for instance, you want a piece of code that will work quite perfectly with your test cases and that too in your required programming language.
What it does
Mystic though still-under-construction, in its beta release, will be transformed into a website based on
PythonBack-end architecture connected with
- Mystic is an open-source project designed to help developers instantly get the most optimized code for their respective intended input and output with additionally providing them with 4 different coding language export namely
- Originally, it is designed to provide the user with the most accurate math function concerning user-provided input-output and programming language they wanted the respective program in.
- Since then, Mystic has been expanded single-handedly in string operations like string appending as well as concatenation and deleting of a string and also in data structures operations like array sorting, linked-lists, and search trees as well as graph operations.
- As of now, programming of multi-language conversion is under development which when deployed will be able to convert a program from one programming language to another programming language among
Javabased on Deep Learning model from
PyTorch. This will be handy for most of the programming project and the user will be provided with instant language transfer as per his/her designed system compatibility.
GraphQLand "Graph Plot" as well as
seabornhave been incorporated to provide a quicker analysis of cumulative data sets fed as input for better understanding through statistical analysis.
PyTorchbased Deep Learning Prediction model is trained to further interpret from the log of data queries generated from the users globally while learning from it which function suits the best the output, in due course.
How we built it
- At first, we started with basic single input-single output based mathematical functions to write a code in C. Then, we added components to build the same functionalities in a total of 4 languages namely C, C++, Python, and Java.
- Further, we incorporated multi-input single-output based mathematical operations into the system. finally, we were ready to handle multi i/o based functionalities and as a result of which we added basic string functionalities as well as data structure related operations.
- Then, we created a data file, basically, a log entry of inputs by users, provided to train our
PyTorchmodel predict function based on past iterations of the log entry. Then we statistical analysis to understand how well our data, as well as our model, has reached in learning.
Challenges we ran into
As sophomore undergrads, we had quite a few trouble with error handling since we used vectors from beginning in processing the function and then we had some more in handling variational inference based on Bayesian methods for Deep Learning finally, we had real trouble with understanding about different PyTorch models available and design one of our own and most importantly debugging it and Making It Work!
Accomplishments that we're proud of
Making the system write code in all 4 languages well enough with all the functionalities available besides writing the log entry and training our PyTorch model to learn from it and generate its inferences. Also, we can monitor this process well enough with data visualization libraries.
What we learned
We learned a lot about probabilistic programming as well as statistical prediction besides getting a deeper insight as to what PyTorch is capable of and lastly, How to make a computer write code for you !!
What's next for Mystic.io
Transfer the front-end HTML/CSS code entirely to React.js. Currently, we are working upon integrating image classifiers to take image files as input and classify what image consists of and provide the user with a relative reference to explore it as well. voice-control input like "Write a C program to obtain max value out of two inputs", at this stage our model will ready to generate its algorithm by understanding through NLP.//Though it's a long shot to work upon, we would like to try it out.