Frage

Wenn Sie eine Sprache auswählen port COBOL-Programmen, in welcher Sprache würden Sie wählen und warum?Ich bin nicht auf der Suche nach der Antwort, "denn ich bin vertraut mit der Sprache X".

Ich bin auf der Suche nach Funktionen in einer Sprache, die Karte gut für COBOL-design.

Update: Die Programme laufen würde die gammit auf Dienstprogramme, Daten Verarbeitung, Bildschirme, etc.

War es hilfreich?

Lösung

Ich würde port, Sie zu ...ähm ...COBOL.Ja, das ist es.COBOL.

Sorry, konnte nicht widerstehen.

Ernsthaft, gibt es COBOL-Compiler für aktuelle Plattformen gibt, und, wenn wir ein wenig mehr darüber wissen, warum der code hat portiert werden, können wir nicht in der Lage sein, zu helfen.

Ist die Plattform, auf der es läuft veraltet?Ist management von nur Druck ist für eine mehr "moderne" Lösung?Sind Sie zu bewegen Zeug von System z, um Windows - (ugh!)?

COBOL - (in seiner reinsten form, und nicht, dass die OO-COBOL-Abfall) ist meist eine einfache prozedurale Sprache (ReportWriter trotz) so übersetzen, zu jeder der anderen prozeduralen Sprachen ziemlich gut:

  • C.
  • C++ ohne Klassen
  • Java, obwohl Sie nicht vermeiden können, in Klassen, es sei denn, Sie haben eine große honkin' singleton.
  • Pascal (etwa eine "tote" Sprache für die andere).
  • auch Python, Perl et al funktionstüchtig gemacht werden kann.

Andere Tipps

Gut, sollten Sie überlegen, welche Eingänge COBOL-Programmen, in der Regel erhalten.

COBOL wurde entwickelt, um die Verarbeitung von großen Mengen von fester Breite formatierten text als Eingabe eine Ausgabe in der gleichen Weise.Das klingt mehr wie ein ETL-Prozess für mich als alles andere.

So würde ich nicht port COBOL-Programme, die einfach eine andere Sprache;Ich würde die Portierung auf geeigneten ETL-Technologien wie SQL Server Integration Services (SSIS) oder zumindest seine predeccesor DTS - SQL Data Transformation Services.SSIS bedeutet VB.NET (zumindest in SQL Server 2005), aber das sollte nicht das problem sein.

Ich weiß nicht viel COBOL, aber ich glaube nicht, dass es eine aktuelle Sprache, die eine gerade Obermenge von es (es ist also nicht einfach direkt anzeigen COBOL-die Sprache).Ich sehe mehrere Probleme:

  1. Integrierte Unterstützung für dezimale Arithmetik - dies schließt jede moderne Sprache ohne operator zu überladen.

  2. Bessere Unterstützung für strukturierte Datensätze, konnte man verwenden struct/union-combo, wie in C, aber ich denke, es würde Identifier manchmal sehr lange (zumindest für Programme, die ich gesehen habe).

  3. Goto-Aussagen - ohne Sie hätte man, um vollständig zu analysieren, die Logik des Programms, wenn es umschreiben.

Möglicherweise gibt es andere Funktionen, die nicht einfach zu Karte.

Ich würde persönlich führen diese Entscheidung basiert auf dem Programm vorgesehen, anstatt der aktuellen Implementierung.Wenn Sie möchten, dass ein straight-out line-for-line-Schnittstelle, obwohl, ich würde wahrscheinlich sagen, dass c/c++.

Vielleicht anstatt sofort den Blick auf eine neue Sprache, die Sie könnte in Erwägung ziehen, den übergang etwas von Ihrem code zu einem modernen framework wie .Net - könnten Sie feststellen, dass eine gute intermediatery Lösung, bis Sie bereit sind, gehen Sie das ganze Schwein.

Es gibt einige Cobol-Compiler für .NET zur Verfügung, wie Fujitsu NetCOBOL.

Ich habe einmal beteiligt war Portierung einige COBOL-Sachen zu C (1989 oder so.) COBOL in Frage stellt code zur überwachung Alarmanlagen, Brandmeldeanlagen, etc.Es war die Art von Programm, das geeignet ist, um eine weitere Echtzeit-Umgebung.Poll dieser Unmenge von Kunden Feldgeräte so viele Male pro minute, etc.Suchen ", die für Funktionen in einer Sprache, die Karte gut für COBOL-design" ignoriert die Tatsache, dass es gibt eine Menge von COBOL-Programmen gibt, ignorieren COBOL-design.

Ich würde immer die COBOL-core -, sondern erweitern Sie um die Kanten.

Mikrofokus bieten ein tool namens Enterprise Server ermöglicht es COBOL-Interaktion mit web-services.

Wenn Sie ein COBOL-Programm und Ein anderer COBOL-Programm B und A geht B über den interface-Abschnitt, mit dem tool können Sie zu entlarven B Abschnitt Schnittstelle als web-service.

Für das Programm Ein, anschließend erstellen Sie eine client proxy und nun ruft B über einen web-service.

Natürlich, denn B hat jetzt eine web-service-jede andere Art von Programm (Befehlszeile, Windows-Anwendung, Java, ASP, etc.) jetzt kann es auch aufrufen.

Auch haben Sie ein Produkt namens COBOL.NET das läuft innerhalb von Visual Studio und übersetzt COBOL in MSIL.Dies bedeutet, dass Sie können dann link .NET-Komponenten.

Also der Ansatz ist, dass die COBOL-core, aber der Schnittstelle über web-services und neue Entwicklungen in alle CLR-kompatiblen Sprachen (C#, VB etc.)

  • Ich muss sagen, Sie sollten keine Portierung von COBOL.
    • Wenn du meinst umschreiben, - ja , dann wählen Sie eine Sprache.Ich würde vorschlagen, eine web-Schnittstelle, java-oder .Net, zu schreiben.
    • Wenn der code ausgeführt werden muss genau wie läuft es jetzt, alle "Portierung" Konvertierung wird nur Schaden.
  • Wenn Sie ändern müssen, die Plattformen für einige Grund, Sie können verwenden COBOL auf einer anderen Plattform.
  • Was hat funktioniert am besten in meiner Erfahrung, ist zu versuchen, die Trennung der Komponenten oder Dienstleistungen von einander, und die Konvertierung entweder kleine Stücke, einzeln oder nur neuen code zu schreiben in einer Sprache halten, die COBOL-running in the back-end.

Zuerst muss man wie, warum COBOL-muss portiert werden?COBOL ist eine leistungsfähige Zeit-geehrt Sprache, die die meisten wahrscheinlich noch mehr Zeilen code, die Abrechnung, Buchhaltung, etc.in der Produktion, als jede andere Sprache.

Der am wenigsten schmerzhaften Ports Synergy DBL.Dies ist eine sehr portable VM-Stil-update von DIBOL (Digital Business Oriented Language).

http://www.synergex.com/synergy-dbl/

DIBOL verwendet alle die guten Stücke aus BASIC, FORTRAN und COBOL verlassen sich die meisten schlecht.

Wenn Sie nach den oben genannten link, den Sie sehen, haben Sie-GUI .NET und andere Verbesserungs-tools.Nur sicher sein, es ist eine VM aus welchem Betriebssystem Sie ausgeführt wird.

IBM-Mainframe-COBOL-machen starken Gebrauch von CICS, TCAM, IDMS, etc.wird das ein wirklich harter port auf etwas anderes.

OpenVMS COBOL nutzen DECForms oder vielleicht sogar FMS wird ein hartes Anschluss ohne screen-handling-Paket.Sehr alte COBOL aus diesen Geschäften machen reichlich Gebrauch von system-Dienste und run-time library-Routinen zur Verfügung gestellt durch die OS, die nicht verfügbar und werden auf den meisten anderen Plattformen.Sie haben auch zu Lesen, auf der Kirchner Soft-und herausfinden, wie etwas umzusetzen, kinda-sorta-nah genug an Ihr Ziel.

Was Sie finden werden, mit den meisten mainframe-und Midrange-COBOL ist, dass Sie nicht Portierung nur COBOL.Es gibt Tonnen von system Dienstleistungen, die älteren COBOL Gebrauch gemacht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top