2010-11-01 5 views
0

Alors voici le problème:
Récemment quelqu'un a acheté un nouveau PC pour serveur pour remplacer un ancien datant d'avant 1985 (je me demande comment il est possible de travailler quotidiennement depuis). Il veut y mettre le vieux logiciel COBOL et il ne veut pas du tout le réécrire à quelque chose de mieux ..Comment compiler le programme COBOL 85 sur

Alors y at-il un compilateur pour 1985 cobol? Pour aujourd'hui chapeau rouge Linux? Googler trouvé OpenCobol et quelques autres, mais tous converti le code c ... semble trop compilacted moi aussi ..
UNE MISE À JOUR DEMANDÉ
AIX est l'ancien système

+2

Sur quel type de plate-forme l'ancien programme COBOL est-il exécuté? Peut-être que vous pourriez simplement virtualiser l'ancien environnement ... – ChristopheD

+0

@ChristopheD: Je seconde cela. J'ai vu des machines virtuelles PDP/RSX11M s'exécuter sur des boîtes Windows par exemple – gbn

+0

Qu'est-ce qui est compliqué à propos de la conversion en C? Je suis sûr que vous pouvez avoir un Makefile qui rend tout transparent. –

Répondre

3

Quel est le problème avec la conversion du COBOL en C et ensuite la compilation? Tant que ça marche. Les premiers environnements C++ ont été implémentés de la même manière: ils ont converti le C++ en C, puis ont appelé le compilateur C. La conversion de COBOL en C leur permet d'utiliser des abstractions de haut niveau implémentant les équivalents COBOL en C. Ils peuvent exploiter les bibliothèques C standard et convertir le code d'accès aux données COBOL en appels à des bases de données largement disponibles comme MySQL. Enfin, la conversion en C puis la compilation tirent parti de la grande quantité d'efforts de développement qui ont été déployés dans la génération de code. Si elles essayaient de compiler directement le code objet, elles devraient générer le code intermédiaire attendu par le sous-système du compilateur GNU, ou elles devraient aller directement au code objet. L'une ou l'autre serait beaucoup plus compliquée que la conversion en C, ce qui signifie que la probabilité de bogues dans le compilateur COBOL serait beaucoup plus élevée. D'où je m'assois, je dirais qu'OpenCOBOL vaut le coup d'œil. Notez qu'ils disent qu'ils mettent en œuvre «une partie substantielle des normes COBOL 85 et COBOL 2002». Vous voulez probablement vous assurer qu'ils mettent en œuvre les pièces dont vous avez besoin.

Je voudrais également suggérer que vous regardez dans TinyCOBOL.

+0

En convertissant vous voulez dire manuellement ou automatiquement via OpenCobol? – GorillaApe

+0

automatiquement par OpenCOBOL. Comprenez qu'il ne convertit pas et ne génère pas de code C à maintenir. Plutôt, le processus de compilation est que OpenCOBOL "compile" le COBOL en C, puis appelle le compilateur GNU C pour compiler le code C. Vous êtes toujours capable de modifier le COBOL et de recompiler. –

+0

@Parhs ... C'est le meilleur conseil jusqu'à présent ... Je voudrais donner la considération sérieuse à OpenCobol car je comprends qu'il est plus conforme COBOL-85 que TinyCobol. – NealB

0

Une compagnie appelée Micro Focus faire un compilateur COBOL pour Windows mais je peux vous assurer que ce n'est pas bon marché du tout!

1

Vous ne mentionnez pas lorsque l'application ou AIX a été mise à jour pour la dernière fois. Si ceux-ci ont été mis à jour au cours des dernières années, vous pourrez peut-être porter l'application sans recompiler. Vous devriez vérifier pour voir ce que le compilateur COBOL a été utilisé à l'origine, par exemple IBM, RM/COBOL, AcuCOBOL, etc. Il pourrait être possible d'acheter une version exécutable seulement (sera exécutée, mais pas compilée), ce qui serait moins cher que d'acheter un compilateur.

+0

C'était RM-COBOL .. Il fallait beaucoup de corrections pour que OpenCobol fonctionne. – GorillaApe

0

La méthode standard pour ce faire est appelée migration et implique un certain nombre d'étapes comprenant la conversion du fichier source en format texte ou un type de fichier compatible avec l'ordinateur cible, en utilisant une méthode approuvée pour convertir en fichier méthode d'enregistrement du codage de phase ou sur disque ou autre support de données éventuellement en mode ASN.xx, transfert sur le nouvel ordinateur pour ensuite lire dans le fichier (via ASN.yy) et le stocker dans un format de fichier natif ou d'importation, puis utilisez un utilitaire pour le convertir au format sourcefile ou en exécutant l'environnement de développement de programme pour accéder au fichier texte natif ou importer le fichier et enregistrer le contenu en tant que fichier source natif. Effectuez des vérifications manuelles et des modifications du code source ou du script, puis compilez le programme et répétez les modifications jusqu'à ce qu'une version de travail soit atteinte. Créez des fichiers de données de test sur le nouvel ordinateur et créez un nouveau fichier de travail ou une nouvelle macro pour exécuter le travail dans l'environnement de développement. Une fois entièrement testé, le programme peut être exécuté en direct à l'aide de fichiers de données et de macros actives ou de fichiers de travail migrés à partir de l'ancien système ou nouvellement créés de manière plus ou moins similaire au code source.Un point important est que les données en direct doivent être lues dans un programme spécialisé d'acquisition de données ou de chargement pour obtenir une base de données remplie avant que de nouvelles transactions ne se produisent dans le cas où un fichier de données structuré est nécessaire. Lorsque vous passez d'AIX ou d'autres versions d'Unix à un système d'exploitation entièrement différent, les caractères de fin de ligne, de saut de ligne et de fin d'enregistrement peuvent nécessiter une conversion spécifique s'ils ne sont pas traités par un convertisseur de format de fichier ou un utilitaire exportateur.

Questions connexes