pseudocode runnable?

voix
3

Je tente de déterminer l'art antérieur à l'idée suivante:

1) les types d'utilisateurs dans un code dans un langage appelé (insert_name_here);

2) L'utilisateur choisit une langue de destination à partir d'une liste de candidats de sortie bien connus (javascript, Ruby, Perl, python);

3) le processeur traduit insert_name_here en code exécutable dans la langue de destination;

4) le processeur exécute ensuite le code en utilisant l'appel système pertinent en fonction de la langue choisie

La raison pour laquelle cela fonctionne est parce qu'il ya un 1 à 1 pré-établie correspondance entre toutes les constructions linguistiques de insert_name_here à toutes les langues de destination pris en charge.

( Avertissement: .. Cela ne signifie évidemment produit pas de code « élégant » qui est bien adapté à la langue de destination Il ne fonctionne tout simplement une traduction rudimentaire qui est runnable Le but est de permettre aux développeurs d'obtenir une mise en œuvre rapide et sale des algorithmes plusieurs langues différentes pour les cas où ils ne se sentent pas comme réinventer la roue, mais sont nécessaires pour une raison quelconque de travailler avec une langue spécifique sur un projet spécifique.)

Est-ce existent déjà?

Créé 03/12/2008 à 22:52
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
4

Le CLR .NET est conçu de telle sorte que C ++. Net, C # .Net et VB.Net tous compilent au même langage machine, et vous pouvez « décompiler » que CLI de retour dans l'une de ces langues.

Alors oui, je dirais qu'il existe déjà mais pas exactement comme vous le décrivez.

Créé 03/12/2008 à 22:57
source utilisateur

voix
2

Il existe des convertisseurs disponibles pour des langues différentes. Le problème que vous allez avoir traite avec les bibliothèques. Bien que la cartographie entre les déclarations de langue pourrait être facile, trouver des correspondances entre les fonctions de la bibliothèque sera très difficile.

Je ne suis pas sûr de l'utilité de ce type de générateur de code serait. Pourquoi voudriez-vous écrire quelque chose dans une langue et puis le convertir immédiatement à autre chose? Je peux voir la raison d'être 4e langues de la génération qui convertissent des diagrammes ou des modèles en code mais je ne vois pas vraiment le point de votre effort.

Créé 03/12/2008 à 23:05
source utilisateur

voix
2

Cela semble un peu bizarre. Si vous utilisez le terme « art antérieur » dans sa forme la plus commune, vous discutez une idée potentiellement brevetables. Si c'est le cas, vous avez:

1 / Publié l'idée, à partir de l'horloge en cours d'exécution sur le dépôt de brevets - Je suppose, peut-être à tort, que vous êtes basé aux États-Unis D'autres pays peuvent avoir d'autres règles.

2 / l'ensemble de la planète Told votre idée, ce qui signifie qu'il est à peu près inutile d'essayer de brevet, sauf si vous agissez très vite.

Si vous ne pensez pas à breveter cela et ont été tout simplement en utilisant le terme « art antérieur » dans un sens non-spécialistes, je présente mes excuses. Je travaille pour une entreprise qui prend des brevets très au sérieux et il est percé en nous, en détail, ce que nous sommes autorisés à faire des informations avant le dépôt.

Cela dit, les idées brevetables doit être nouvelle, utile et non évidente. Je pense que votre idée ne passerait pas le tiers d'entre eux depuis que vous décrivez un traducteur de langue qui aurait l'art antérieur des nombreux convertisseurs pascals à c et Fortran à c là-bas.

La seule lueur d'espoir serait la capacité de votre idée de générer une des plusieurs langues de sortie (qui P2C et F2C ne le font pas) mais je pense même que seraient couverts par les goûts des compilateurs croisés (comme gcc) qui tournent source dans l'une des nombreuses langues d'objets différents.

IBM a un produit appelé générateur Visual Age dans lequel vous code dans un (propriétaire) langue et convertie en COBOL / C / Java / autres pour fonctionner sur différentes plates-formes cibles de PC au grand honkin' mainframes System z, donc il est votre première problème (penser à faire breveter une idée que IBM, le plus grand patenter dans le monde, utilise déjà).

Créé 04/12/2008 à 00:07
source utilisateur

voix
2

Des tonnes d'entre eux. P2C, F2C et le s de mise en œuvre originale de C ++ et Objective C me frappe immédiatement. Au-delà de cela, il est un peu difficile de distinguer ce que vous décrivez de tout compilateur, surtout pour nous les anciens gars dont compilateurs généré code ASM pour un represetation intermédiaire de toute façon.

Créé 04/12/2008 à 00:54
source utilisateur

voix
3

Oui, un programme qui transforme un programme d'une représentation à une autre n'existe. Il est appelé un « compilateur ».

Quant à votre question de savoir si c'est toujours possible: aussi longtemps que votre langue cible est au moins aussi puissant que la langue source, il est alors possible. Donc, si votre langue cible est Turing-complet, il est toujours possible, car il n'y a pas un langage qui est plus puissant qu'un langage Turing-complet.

Cependant, il n'a pas besoin d'être un muet 1: cartographie 1.

Par exemple: le compilateur Microsoft Volta qui compile CIL bytecode JavaScript sourcecode a un problème: .NET a threads, JavaScript ne fonctionne pas. Mais vous pouvez mettre en œuvre les discussions avec continuations. Eh bien, JavaScript ne pas continuations non plus, mais vous pouvez mettre en œuvre continuations avec des exceptions. Ainsi, Volta transforme le CIL CPS et met ensuite en oeuvre CPS avec des exceptions. (Les versions plus récentes de JavaScript ont semi-coroutines sous forme de générateurs, celles-ci pourraient aussi être utilisés, mais Volta a pour but de travailler dans un large éventail de versions JavaScript, y compris évidemment JScript dans Internet Explorer.)

Créé 04/12/2008 à 09:22
source utilisateur

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