Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - kaushal-py/GraceEngine: An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code. · GitHub
Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - kaushal-py/GraceEngine: An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code. · GitHub
Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - kaushal-py/GraceEngine: An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code. · GitHub
Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - kaushal-py/GraceEngine: An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code. · GitHub
Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - kaushal-py/GraceEngine: An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code. · GitHub
Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - kaushal-py/GraceEngine: An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code. · GitHub
Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - kaushal-py/GraceEngine: An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code. · GitHub
Skip to content

Repository files navigation

GraceEngine - A Programming Engine

Grace Engine Demo

PRs WelcomeGitHub licenseGitHub issues-closedLanguages

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica. But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? -- Stephen Wolfram, creator of Mathematica.

Programming languages are a medium to communicate with computers.The question remains however, whether we need such cryptic languages in the first place. One answer as to why programming languages are everywhere is that they have structured, unambiguous syntaxes which make them an extremely efficient way to communicate with the computer. But this makes programming intriguing and boring, especially for beginners and business people. This application aims to tackle this particular issue by developing a tool which tries to simplify programming in general for such users. The project can be imagined in the following way -

The user will speak out, i.e. by voice, a specific task that he wants to achieve in natural language, for example

Assign value 10 to a. Let b equals 20. Add a and b and store it in c. Print the value of c.

will be converted to Python/C code which looks something like this.

a=10b=20c=a+bprint(c)

Why convert the spoken sentences to a particular programming language? Natural language is, by itself, very ambiguous and does not fully express the idea in a format a computer can understand. By using techniques like natural language understanding, these statements can be mapped to a programming language code, thus providing the user a “flexibility to edit” certain ambiguous statements by editing the code.

The aim (Social Relevance)

This project is seen as an automation tool that helps making programming easier and faster. (Why faster? - An average person can speak at about 140-150 wpm, where as a typist has an efficiency of 40-50 wpm.) It can also be seen as a great assistant for people with disabilities in arms, people suffering from diseases like RSI, etc. But at a greater level, this is seen as a future era of programming where programming will be more natural, and it will not just be a tool that a group of software developers will be using to automate stuff, but students, academicians, business people and also a general public who will be using programming every day to perform some task or the other. Programming will be as natural as making coffee, and everyone will be able to do it.

Project outcomes

A single statement that a user speaks can be as simple as a print command like “Print hello world” or a statement which performs a complex function like “Define a function to reverse a string”.These two cases will be handled differently. To handle the first statement, we plan to create intents and map them to all major programming constructs like assignments, arithmetic operations, loops, functions and so on. The second case will depend heavily on large datasets of code. Large repositories of code like Github may have many snippets which can be used to directly to get results. An optimal data structure can be created which will make loading of these snippets faster and more accurate.

Insturctions for Collaborators

Note: This project is well tested on Ubuntu 18.04 OS (now works on MacOS 10.15 too). If you face compatibility issues on other OS, try fixing the error by yourself first, if not possible, make it as a issue.

To setup the development environment, follow these steps.

  1. Setup a virtual environment for python using Anaconda or similar tools. Make sure the python version is 3.6+.

conda create -n grace python=3.6

  1. Install the dependencies using the requirements.txt file.

pip install -r requirements.txt

  1. To run the API server, run the following command after the dependencies are installed.

gunicorn --pythonpath api api:app -b localhost:5000

This will start a local API server at [127.0.0.1:5000] (Visiting this using a browser won't do anything). Keep this running and open a new terminal tab for running the frontend npm server.

  1. Go to the app directory and install dependencies.
cd app
npm install
  1. Run the frontend server npm run serve

This step takes a while. The webapp can then be opened at http://localhost:8080. Have fun :)

Footnotes

This project was named after Grace Hopper

forthebadge made-with-python

About

An AI based talking agent, which interacts with programmers to convert logic spoken in English to Python code.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages