spustitelný pseudokód?

hlasů
3

Snažím se zjistit stav techniky pro následující myšlenku:

1) uživatel zadá nějaký kód v jazyce s názvem (insert_name_here);

2) Uživatel zvolí cílovou jazyk ze seznamu známých výstupních kandidátů (JavaScript, rubín, Perl, Python);

3) Procesor překládá insert_name_here do runnable kódu v cílovém jazyce;

4) procesor spustí kód pomocí příslušného systémového volání na základě zvoleného jazyka

Důvodem této práce je, protože tam je předem stanovena 1-1 mapování mezi všemi jazykovými konstrukty ze insert_name_here do všech podporovaných cílových jazyků.

( Upozornění: .. To samozřejmě neprodukuje „elegantní“ kód, který je dobře přizpůsoben k cílovému jazyku Je to prostě dělá rudimentární překlad, který je spustitelný Cílem je umožnit vývojářům získat rychlý-a-špinavé realizaci algoritmů v několik různých jazyků pro ty případy, kdy se necítí jako znovu vynalézat kolo, ale jsou nutné z nějakého důvodu pracovat s určitým jazykem na konkrétním projektu.)

Znamená to již existují?

Položena 03/12/2008 v 22:52
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
4

.NET CLR je navržen tak, aby C ++. Net, C # .NET a VB.Net vše sestavit do stejného strojového jazyka a můžete „překládat“, že CLI zpět do některého z těchto jazyků.

Takže ano, tak bych řekl, že již existuje i když ne přesně tak, jak byste popsat.

Odpovězeno 03/12/2008 v 22:57
zdroj uživatelem

hlasů
2

K dispozici jsou převodníky jsou k dispozici pro různé jazyky. Problém budete mít se zabývá knihoven. I když mapování mezi příkazy jazyka by mohlo být jednoduché, najít mapování mezi funkcí knihovny bude velmi obtížné.

Nejsem si jistý, jak užitečný tento typ generátoru kódu bude. Proč byste měli chtít, aby okamžitě psát něco v jednom jazyce a poté jej převést na něco jiného? Vidím důvody pro 4. jazyků Gen, které přeměňují diagramy nebo modely do kódu, ale nemám opravdu vidět smysl svého úsilí.

Odpovězeno 03/12/2008 v 23:05
zdroj uživatelem

hlasů
2

To se zdá být trochu bizarní. Pokud používáte termín „podle dosavadního stavu techniky“ ve své nejběžnější formě, budete diskutovat o potenciálně patentovatelný nápad. Pokud tomu tak je tomu v případě, máte:

1 / Vydáno myšlenku, počínaje hodiny běží na patent podání - já jsem za předpokladu, možná nesprávně, že jste se sídlem v USA dalších jurisdikcích může mít jiná pravidla.

2 / Told celé planetě své myšlenky, což znamená, že je to do značné míry zbytečné snažit a patent ji, pokud budete jednat velmi rychle.

Pokud si nejste přemýšlet o patentování tohoto a právě používání termínu „podle dosavadního stavu techniky“ ve smyslu laiky, omlouvám se. Pracuji pro společnost, která bere patenty velmi vážně a je to vrtat nás velmi podrobně, co jsme dovoleno dělat s informacemi před podáním.

Z uvedeného vyplývá, patentovatelné nápady musí být nové, užitečné a non-zřejmý. Řekl bych, že váš nápad neprojde o třetinu z nich, protože jste popisující jazykový překladač, který by měl dosavadní stav techniky z mnoha Pascal-to-C a Fortran-to-c převodníky venku.

Ten záblesk naděje by schopnost vašeho nápadu k výrobě jednoho z více výstupních jazyků (který P2C a CF2C nedělají), ale myslím, že i to by se vztahovala likes křížových kompilátorů (například GCC), které obracejí zdroj do jedné z mnoha různých objektových jazyků.

IBM má produkt s názvem Visual Age generátor, ve kterém kód v jednom (proprietární) jazykem a je to přeměněn COBOL / C / Java / ostatní běžet na různé cílové platformy z PC do velkého honkin' System z sálové počítače, takže je vaše první problém (přemýšlet o patentovat myšlenku, že IBM, největší patenter na světě, již používá).

Odpovězeno 04/12/2008 v 00:07
zdroj uživatelem

hlasů
2

Tuny z nich. P2C, CF2C a původní implementace s C ++ a Objective C okamžitě udeří mě. Kromě toho, je to docela těžké rozlišit, co jste popisující z jakéhokoli kompilátoru, zvláště pro nás staré chlapy, jejichž překladače generované ASM kód pro zprostředkující Zastoupení tak jako tak.

Odpovězeno 04/12/2008 v 00:54
zdroj uživatelem

hlasů
3

Ano, program, který transformovat program z jedné reprezentace na jiný nemá existovat. Říká se tomu „kompilátor“.

A pokud jde o vaši otázku, zda toto je vždy možné: pokud váš cílový jazyk je přinejmenším stejně silný jako ve zdrojovém jazyce, pak je to možné. Takže, pokud váš cílový jazyk je Turing-kompletní, pak je vždy možné, protože tam může být žádný jazyk, který je silnější než Turing-dokončit jazyk.

Nicméně, tam nemusí být hloupý 1: 1 mapování.

Například: Microsoft Volta kompilátor, který překládá CIL bytecode do zdrojového kódu JavaScriptu má problém: NET má závity, JavaScript není. Ale můžete implementovat závity pokračováních. No, JavaScript nemá pokračováním jeden, ale můžete implementovat pokračováních s výjimkami. Takže, Volta transformuje CIL na CPS a pak realizuje CPS s výjimkami. (Novější verze JavaScriptu mají návěsy koprogram ve formě generátorů; ty mohou být také použity, ale Volta je určen pro práci v celé řadě verzí JavaScriptu, včetně zřejmě JScript v aplikaci Internet Explorer.)

Odpovězeno 04/12/2008 v 09:22
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more