runnable Pseudo-Code?

stimmen
3

Ich versuche, den Stand der Technik für die folgende Idee zu bestimmen:

1) Benutzer gibt in einigen Code in einer Sprache genannt (insert_name_here);

2) Benutzer wählen eine Zielsprache aus einer Liste von bekannten Ausgang Kandidaten (JavaScript, Rubin, Perl, Python);

3) Der Prozessor übersetzt insert_name_here in runnable Code in Zielsprache;

4) Der Prozessor führt dann den Code, um den entsprechenden Systemaufruf auf der Basis der gewählten Sprache

Der Grund, dies funktioniert, ist, weil es eine vorher festgelegte 1 bis 1 Zuordnung zwischen allen Sprachkonstrukten von insert_name_here auf alle unterstützten Zielsprachen ist.

( Disclaimer: .. Dies gilt natürlich nicht „elegant“ Code zu erzeugen , die gut abgestimmt ist auf die Zielsprache Es tut einfach eine rudimentäre Übersetzung , die runnable ist der Zweck ist es, Entwickler zu ermöglichen , eine schnelle und unsaubere Implementierung von Algorithmen zu bekommen verschiedene Sprachen für die Fälle , in denen sie nicht dem Gefühl , wie das Rad neu zu erfinden, sind aber aus irgendeinem Grunde erforderlich , um mit einer bestimmten Sprache zu einem bestimmten Projekt zu arbeiten.)

Ist dies bereits vorhanden?

Veröffentlicht am 03/12/2008 um 22:52
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
4

Die .NET-CLR ist so ausgelegt, dass C ++. Net, C # .Net, und VB.Net alle auf die gleiche Maschinensprache übersetzen, und man kann „dekompilieren“ dass CLI zurück in irgendeinem dieser Sprachen.

Also ja, ich würde sagen, es ist bereits vorhanden, wenn auch nicht genau so, wie Sie beschreiben.

Beantwortet am 03/12/2008 um 22:57
quelle vom benutzer

stimmen
2

Es gibt Konverter für verschiedene Sprachen. Das Problem, den Sie gehen zu müssen, wird der Umgang mit Bibliotheken. Während Zuordnung zwischen Sprachanweisungen leicht sein könnte, werden Zuordnungen zwischen Bibliotheksfunktionen zu finden, sehr schwierig sein.

Ich bin nicht wirklich sicher, wie nützlich diese Art von Code-Generator sein würde. Warum würden Sie etwas in einer Sprache schreiben wollen, und dann sofort wandelt es in etwas anderes? Ich kann die Gründe für die 4. Generation Sprachen sehen, die Diagramme oder Modelle in Code umwandeln, aber ich weiß nicht wirklich den Punkt Ihrer Bemühungen sehen.

Beantwortet am 03/12/2008 um 23:05
quelle vom benutzer

stimmen
2

Dies scheint ein wenig bizarr. Wenn Sie den Begriff „Stand der Technik“ in seiner allgemeinsten Form verwenden, sind Sie auf eine potenziell patentierbar Idee zu diskutieren. Wenn das ist der Fall, Sie haben:

1 / veröffentlicht die Idee, startet die Uhr auf der Patentanmeldung läuft - ich gehe davon aus, vielleicht falsch, dass Sie in den USA Anderen Ländern ansässig sind können andere Regeln.

2 / Told den gesamten Planeten Ihre Idee, die es ist ziemlich nutzlos, zu versuchen und Patent es bedeutet, wenn Sie sehr schnell handeln.

Wenn Sie sich nicht über die Patentierung nachgedacht und wurden nur mit dem Begriff „Stand der Technik“ in einem Laien Sinne, entschuldige ich mich. Ich arbeite für ein Unternehmen, das Patente sehr ernst nimmt und es in uns gebohrt, im Detail, was wir mit Informationen zu tun, bevor die Einreichung sind erlaubt.

Having said that, patentierbare Ideen neue, nützliche und nicht offensichtlich sein muss. Ich würde denken, dass Ihre Idee nicht auf dem Drittel davon passieren würde, da Sie eine Sprache Übersetzer sind zu beschreiben, die den Stand der Technik der vielen pascal-to-c und Fortran-to-c-Wandler gibt haben würde.

Der ein Hoffnungsschimmer wäre die Fähigkeit Ihrer Idee einer von mehreren Ausgangssprachen zu erzeugen (was p2c und f2c nicht tun), aber ich denke auch, dass durch die Gleichen von Cross-Compiler (wie gcc) abgedeckt würden, die drehen Quelle in eine von vielen verschiedenen Objekt Sprachen.

IBM hat ein Visual Age Generator genannt Produkt, in dem Sie Code in einer (proprietär) Sprache und in COBOL / C / Java / andere umgewandelt sind auf verschiedene Zielplattformen von PCs an den großen honkin System z Mainframes zu laufen, so dass es Ihre ersten Problem (darüber nachzudenken, eine Idee patentieren, dass IBM, der größte patenter in der Welt, bereits verwendet).

Beantwortet am 04/12/2008 um 00:07
quelle vom benutzer

stimmen
2

Tonnen von ihnen. p2c, f2c, und die ursprüngliche Implementierung s von C ++ und Objective C mich sofort zuzuschlagen. sowieso Darüber hinaus ist es ziemlich schwer zu unterscheiden, was Sie von jedem Compiler sind zu beschreiben, vor allem für uns alte Leute, deren Compiler ASM-Code für eine Zwischen represetation erzeugt.

Beantwortet am 04/12/2008 um 00:54
quelle vom benutzer

stimmen
3

Ja, ein Programm , das ein Programm von einer Darstellung in einer anderen umwandeln nicht existieren. Es ist ein „Compiler“ bezeichnet.

Und zu Ihrer Frage , ob das immer möglich ist: solange Ihre Zielsprache als Ausgangssprache mindestens so mächtig ist, dann ist es möglich. Also, wenn Sie Ihre Zielsprache Turing-vollständig ist, dann ist es immer möglich, weil es keine Sprache sein , die stärker ist als eine Turing-complete Sprache.

Allerdings braucht es nicht eine dumme 1: 1-Abbildung.

Zum Beispiel: der Microsoft Volta Compiler, der auf JavaScript Source CIL Bytecode hat ein Problem kompiliert: .NET Threads hat, tut JavaScript nicht. Aber Sie können Fäden mit Fortsetzungen implementieren. Nun, JavaScript nicht über Fortsetzungen entweder, aber Sie können Fortsetzungen mit Ausnahmen implementieren. So verwandelt sich Volta die CIL zu CPS und implementiert dann CPS mit Ausnahmen. (Neuere Versionen von JavaScript haben semi-Koroutinen in Form von Generatoren, diejenigen, auch verwendet werden können, aber Volta beabsichtigt ist, in einem breiten Spektrum von JavaScript-Versionen zu arbeiten, einschließlich offensichtlich JScript in Internet Explorer.)

Beantwortet am 04/12/2008 um 09:22
quelle vom benutzer

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