{"id":4981,"date":"2021-06-21T11:43:08","date_gmt":"2021-06-21T09:43:08","guid":{"rendered":"https:\/\/proetcon.de\/?page_id=4981"},"modified":"2026-01-21T20:44:01","modified_gmt":"2026-01-21T19:44:01","slug":"cojac","status":"publish","type":"page","link":"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/technology-and-tools\/cojac\/","title":{"rendered":"CoJaC \u2013 COBOL to Java Converter"},"content":{"rendered":"<div id=\"pl-gb4981-69d189ecdac41\" class=\"panel-layout wp-block-siteorigin-panels-layout-block\"><div id=\"pg-gb4981-69d189ecdac41-0\" class=\"panel-grid panel-has-style\"><div class=\"panel-row-style panel-row-style-for-gb4981-69d189ecdac41-0\"><div id=\"pgc-gb4981-69d189ecdac41-0-0\" class=\"panel-grid-cell\"><div id=\"panel-gb4981-69d189ecdac41-0-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"0\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-0-0-0\">\t\t\t<div class=\"textwidget\"><p><span style=\"font-weight: bold; color: #b2b2b2;\"><a href=\"https:\/\/proetcon.de\/index.php\/en\/technology-leader-and-partner-for-software-migration\/\">HOME<\/a> &gt; <a href=\"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/\">SOFTWARE MIGRATION<\/a> &gt; <a href=\"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/technology-and-tools\/\">TECHNOLOGY AND TOOLS<\/a> &gt; <a href=\"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/technology-and-tools\/cojac\/\"><u>COJAC<\/u><\/a><\/span><\/p>\n<\/div>\n\t\t<\/div><\/div><\/div><\/div><\/div><div id=\"pg-gb4981-69d189ecdac41-1\" class=\"panel-grid panel-has-style\"><div class=\"panel-row-style panel-row-style-for-gb4981-69d189ecdac41-1\"><div id=\"pgc-gb4981-69d189ecdac41-1-0\" class=\"panel-grid-cell\"><div id=\"panel-gb4981-69d189ecdac41-1-0-0\" class=\"so-panel widget widget_siteorigin-panels-builder panel-first-child\" data-index=\"1\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-1-0-0\"><div id=\"pl-w67f3acc284209\" class=\"panel-layout wp-block-siteorigin-panels-layout-block\"><div id=\"pg-w67f3acc284209-0\" class=\"panel-grid panel-has-style\"><div class=\"panel-row-style panel-row-style-for-w67f3acc284209-0\"><div id=\"pgc-w67f3acc284209-0-0\" class=\"panel-grid-cell\"><div id=\"panel-w67f3acc284209-0-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"0\">\t\t\t<div class=\"textwidget\"><p><img fetchpriority=\"high\" decoding=\"async\" class=\"size-medium wp-image-8009 alignleft\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/02\/logo_cojac_schatten_vektorisiert.svg\" alt=\"Gr\u00fcnes Logo CoJaC-Tool\" width=\"300\" height=\"300\"><br>\nCoJaC is our tool for conver\u00adting histo\u00adri\u00adcal COBOL appli\u00adca\u00adti\u00adons to modern Java soluti\u00adons. CoJaC genera\u00adtes maintainable and high-perfor\u00ad\u00admance Java code which is seman\u00adti\u00adcally equiva\u00adlent to the COBOL&nbsp;code.<br>\nDuring conver\u00adsion, the tool achie\u00adves an automa\u00adtion level of 95\u201399 %. CoJaC combi\u00adnes scien\u00adti\u00adfic know-how in compi\u00adler construc\u00adtion with core compe\u00adtency resul\u00adting from successful migration projects.<\/p>\n<\/div>\n\t\t<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"panel-gb4981-69d189ecdac41-1-0-1\" class=\"so-panel widget widget_text\" data-index=\"2\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-1-0-1\">\t\t\t<div class=\"textwidget\"><h2>CoJaC TECHNOLOGY<\/h2>\n<p>For complex compi\u00adling proces\u00adses, the use of speci\u00adfic conver\u00adsion tools, so-called trans\u00adla\u00adtors, is neces\u00adsary. Trans\u00adla\u00adtors work by analogy with a compi\u00adler which, via diffe\u00adrent inter\u00adme\u00addiate stages, compi\u00adles source program\u00admes to execu\u00adta\u00adble target code.<\/p>\n<p>CoJaC is a trans\u00adla\u00adtor for conver\u00adting histo\u00adri\u00adcal COBOL appli\u00adca\u00adti\u00adons to modern Java soluti\u00adons. For the requi\u00adre\u00adments of language conver\u00adsion, we have further develo\u00adped the general compi\u00adler model into a trans\u00adla\u00adtor&nbsp;model:<\/p>\n<p><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/09\/cojac_technology.svg\"><img decoding=\"async\" class=\"aligncenter wp-image-6210\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/09\/cojac_technology.svg\" alt width=\"800\"><\/a><\/p>\n<ul>\n<li><strong>FRONT-END:<\/strong> reads the COBOL programme, inclu\u00adding the corre\u00adspon\u00adding copybooks, and genera\u00adtes an inter\u00adnal syntax tree which repres\u00adents the complete COBOL programme<\/li>\n<li><strong>TRANS\u00adFOR\u00adMER:<\/strong> converts the COBOL syntax tree to an equiva\u00adlent Java syntax tree. The actual conver\u00adsion is based on syntax trees instead of source code.<\/li>\n<li><strong>POST-PROCES\u00ad\u00adSOR:<\/strong> splits the complex Java syntax tree into indivi\u00addual syntax trees which repre\u00adsent the programme struc\u00adture of the subse\u00adquent Java programme<\/li>\n<li><strong>GENERATOR\/FORMATTER:<\/strong> genera\u00adtes Java classes and packa\u00adges from indivi\u00addual Java syntax trees and automa\u00adti\u00adcally formats source code accor\u00adding to client specifications<\/li>\n<li><strong>LIBRA\u00adRIES:<\/strong> allow the use of the COBOL data types and function\u00ada\u00adli\u00adties in conver\u00adted Java code which do not exist 1:1 in&nbsp;Java<\/li>\n<\/ul>\n<\/div>\n\t\t<\/div><\/div><div id=\"panel-gb4981-69d189ecdac41-1-0-2\" class=\"so-panel widget widget_text panel-last-child\" data-index=\"3\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-1-0-2\">\t\t\t<div class=\"textwidget\"><h2>FEATURES<\/h2>\n<div>CoJaC stands out for the follo\u00adwing features:<\/div>\n<\/div>\n\t\t<\/div><\/div><\/div><\/div><\/div><div id=\"pg-gb4981-69d189ecdac41-2\" class=\"panel-grid panel-has-style\"><div class=\"panel-row-style panel-row-style-for-gb4981-69d189ecdac41-2\"><div id=\"pgc-gb4981-69d189ecdac41-2-0\" class=\"panel-grid-cell\"><div id=\"panel-gb4981-69d189ecdac41-2-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"4\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-2-0-0\">\t\t\t<div class=\"textwidget\"><p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8377\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature1.png\" alt width=\"120\" height=\"120\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature1.png 1000w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature1-300x300.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature1-150x150.png 150w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature1-768x768.png 768w\" sizes=\"(max-width: 120px) 100vw, 120px\"><\/p>\n<p><\/p><center><strong>Integra\u00adting source code comments<\/strong><br>\nSource code comments are automa\u00adti\u00adcally integra\u00adted into target code<\/center>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pgc-gb4981-69d189ecdac41-2-1\" class=\"panel-grid-cell\"><div id=\"panel-gb4981-69d189ecdac41-2-1-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"5\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-2-1-0\">\t\t\t<div class=\"textwidget\"><p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8378\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature2.png\" alt width=\"120\" height=\"120\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature2.png 1000w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature2-300x300.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature2-150x150.png 150w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature2-768x768.png 768w\" sizes=\"(max-width: 120px) 100vw, 120px\"><\/p>\n<p><\/p><center><strong>Target code struc\u00adtu\u00adring&nbsp;into Java classes and packages<\/strong><br>\nThe target code is struc\u00adtu\u00adred into Java classes and packa\u00adges by our JPackage tool as requested<\/center>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pgc-gb4981-69d189ecdac41-2-2\" class=\"panel-grid-cell\"><div id=\"panel-gb4981-69d189ecdac41-2-2-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"6\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-2-2-0\">\t\t\t<div class=\"textwidget\"><p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8379\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature3.png\" alt width=\"120\" height=\"120\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature3.png 1000w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature3-300x300.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature3-150x150.png 150w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature3-768x768.png 768w\" sizes=\"auto, (max-width: 120px) 100vw, 120px\"><\/p>\n<p><\/p><center><strong>Format\u00adting genera\u00adted Java&nbsp;code&nbsp;<\/strong><br>\nThe genera\u00adted Java&nbsp;code is format\u00adted in a user-speci\u00ad\u00adfic manner<\/center>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pgc-gb4981-69d189ecdac41-2-3\" class=\"panel-grid-cell\"><div id=\"panel-gb4981-69d189ecdac41-2-3-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"7\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-2-3-0\">\t\t\t<div class=\"textwidget\"><p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8380\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature4.png\" alt width=\"120\" height=\"120\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature4.png 1000w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature4-300x300.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature4-150x150.png 150w, https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/cojac_feature4-768x768.png 768w\" sizes=\"auto, (max-width: 120px) 100vw, 120px\"><\/p>\n<p><\/p><center><strong>Support\u00ading diffe\u00adrent COBOL dialects&nbsp;<\/strong><br>\nCoJaC supports diffe\u00adrent COBOL dialects (IBM, HPE NonStop, BS2000)<\/center>\n<\/div>\n\t\t<\/div><\/div><\/div><\/div><\/div><div id=\"pg-gb4981-69d189ecdac41-3\" class=\"panel-grid panel-no-style\"><div id=\"pgc-gb4981-69d189ecdac41-3-0\" class=\"panel-grid-cell\"><div id=\"panel-gb4981-69d189ecdac41-3-0-0\" class=\"so-panel widget widget_text panel-first-child\" data-index=\"8\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-3-0-0\">\t\t\t<div class=\"textwidget\"><h2>MIGRATION PATHS<\/h2>\n<p>The follo\u00adwing table exempli\u00adfies some migration paths of the basic compon\u00adents to the corre\u00adspon\u00adding migration target:<\/p>\n<p><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_migrationpaths.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6208 aligncenter\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_migrationpaths.svg\" alt width=\"800\" height=\"306\"><\/a><\/p>\n<\/div>\n\t\t<\/div><\/div><div id=\"panel-gb4981-69d189ecdac41-3-0-1\" class=\"so-panel widget widget_siteorigin-panels-builder\" data-index=\"9\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-3-0-1\"><div id=\"pl-w69712a6dafb53\" class=\"panel-layout wp-block-siteorigin-panels-layout-block\"><div id=\"pg-w69712a6dafb53-0\" class=\"panel-grid panel-no-style\"><div id=\"pgc-w69712a6dafb53-0-0\" class=\"panel-grid-cell\"><div id=\"panel-w69712a6dafb53-0-0-0\" class=\"so-panel widget widget_text panel-first-child\" data-index=\"0\">\t\t\t<div class=\"textwidget\"><h2>MIGRATION ASPECTS<\/h2>\n<\/div>\n\t\t<\/div><div id=\"panel-w69712a6dafb53-0-0-1\" class=\"so-panel widget widget_sow-accordion panel-last-child\" data-index=\"1\"><div class=\"so-widget-sow-accordion so-widget-sow-accordion-default-b9e5471b9847\"><div>\n\t<div class=\"sow-accordion\">\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"architecture-migration\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-architecture-migration\" aria-controls=\"accordion-content-architecture-migration\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>ARCHI\u00adTEC\u00adTURE MIGRATION<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-architecture-migration\" id=\"accordion-content-architecture-migration\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p style=\"text-align: left;\">The process of migration goes far beyond the mere program trans\u00adfor\u00adma\u00adtion and includes an archi\u00adtec\u00adture migration as well. The target archi\u00adtec\u00adture can be selec\u00adted to run both on a local server and in a commer\u00adcial provider\u2019s cloud environment:<a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/architecture_migration_cojac.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6132 aligncenter\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/architecture_migration_cojac.png\" alt width=\"800\" height=\"699\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/architecture_migration_cojac.png 1236w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/architecture_migration_cojac-300x262.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/architecture_migration_cojac-1024x895.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/architecture_migration_cojac-768x671.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\"><\/a><\/p>\nThe graphic here is an indica\u00adtive example of the archi\u00adtec\u00adture of a typical COBOL appli\u00adca\u00adtion and the Java target system resul\u00adting from&nbsp;it.&nbsp;<ul>\n \t<li><strong>COBOL server programs <\/strong>are provi\u00added in the Java target system as web services.<\/li>\n \t<li><strong>COBOL batch programs (server) <\/strong>are trans\u00adfor\u00admed into autono\u00admous Java programs.<\/li>\n<\/ul>\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"cloud-migration\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-cloud-migration\" aria-controls=\"accordion-content-cloud-migration\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>CLOUD MIGRATION<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-cloud-migration\" id=\"accordion-content-cloud-migration\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\tThe target system resul\u00adting from the migration can also be run in a cloud environ\u00adment. With Infra\u00adstruc\u00adture as a Service (IaaS), the opera\u00adtion is de facto analog\u00adous to a local server solution. If the indivi\u00addual compon\u00adents include migration targets, which are offered by a cloud provi\u00adder, Platform as a Service (SaaS) is another valid solution. Provi\u00added that certain parts can be extra\u00adc\u00adted from the former COBOL system, these subsys\u00adtems can also run in Software as a Service (Saas) environ\u00adments. The options and the choice of opera\u00adting mode essen\u00adti\u00adally depend on the source system. For any migra\u00adted appli\u00adca\u00adtion, however, there are ways to run it in a&nbsp;cloud.&nbsp;<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9868 size-large\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2023\/07\/cloud_migration-1024x744.png\" alt=\"Cloud-Migration - Self-Service und Managed Services\" width=\"1024\" height=\"744\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2023\/07\/cloud_migration-1024x744.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2023\/07\/cloud_migration-300x218.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2023\/07\/cloud_migration-768x558.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2023\/07\/cloud_migration-1536x1116.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2023\/07\/cloud_migration-2048x1488.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2023\/07\/cloud_migration-1320x959.png 1320w\" sizes=\"(max-width: 1024px) 100vw, 1024px\">\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"cojac-libraries\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-cojac-libraries\" aria-controls=\"accordion-content-cojac-libraries\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>CoJaC LIBRA\u00adRIES<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-cojac-libraries\" id=\"accordion-content-cojac-libraries\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>The libra\u00adries provide classes for proces\u00adsing the migra\u00adted programs in the Java target environ\u00adment. This includes classes for the COBOL data types (numeric and alpha\u00adnu\u00adme\u00adric data) and basic classes for arrays and struc\u00adtures. In addition, there are methods that imple\u00adment the function\u00ada\u00adlity of COBOL instruc\u00adtions without native state\u00adments in Java (e.g. <code>STRING<\/code> and <code>INSPECT<\/code>). Further compon\u00adents are static methods for depic\u00adting the intrin\u00adsic functions, methods for type conver\u00adsion and classes that provide the function\u00ada\u00adlity of inter\u00adfaces (files, SQL, middle\u00adware). The libra\u00adries form the basis for a compact maintainable Java&nbsp;code.<\/p>\n<p>Examp\u00adles of the appli\u00adca\u00adtion of the CoJaC libraries:<\/p>\n<div id=\"attachment_6042\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6042\" class=\"wp-image-6042\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest.png\" alt=\"Example of the migration of CALL statements\" width=\"360\" height=\"237\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest.png 3792w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest-300x198.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest-1024x675.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest-768x506.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest-1536x1013.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest-2048x1350.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calltest-1320x870.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6042\" class=\"wp-caption-text\">Example of the migration of CALL statements<\/p><\/div>\n<div id=\"attachment_6044\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6044\" class=\"wp-image-6044\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest.png\" alt=\"Example of the migration of COMPUTE and ADD statements\" width=\"360\" height=\"237\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest.png 3792w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest-300x198.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest-1024x675.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest-768x506.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest-1536x1013.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest-2048x1350.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_calctest-1320x870.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6044\" class=\"wp-caption-text\">Example of the migration of COMPUTE and ADD statements<\/p><\/div>\n<div id=\"attachment_6043\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6043\" class=\"wp-image-6043\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest.png\" alt=\"Example of the migration of 88 steps\" width=\"360\" height=\"237\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest.png 3792w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest-300x198.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest-1024x675.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest-768x506.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest-1536x1013.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest-2048x1350.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_agetest-1320x870.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6043\" class=\"wp-caption-text\">Example of the migration of 88&nbsp;steps<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"middleware-migration\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-middleware-migration\" aria-controls=\"accordion-content-middleware-migration\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>MIDDLE\u00adWARE MIGRATION<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-middleware-migration\" id=\"accordion-content-middleware-migration\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<div class=\"imgtitle\">\n<p>COBOL-servers control\u00adled by middle\u00adware (a transac\u00adtion proces\u00adsing monitor) are trans\u00adla\u00adted into Java web services by CoJaC and integra\u00adted into an appli\u00adca\u00adtion server. In doing so, middle\u00adware-speci\u00adfic data and state\u00adments are removed or repla\u00adced by a corre\u00adspon\u00adding web service function\u00ada\u00adlity. In the process, the inter\u00adface does not change in content. The web services process the same messa\u00adges as the COBOL server before. Neces\u00adsary conver\u00adsi\u00adons are encap\u00adsu\u00adla\u00adted by the libra\u00adries which also take over adminis\u00adtra\u00adtion of transac\u00adtions. Our tool MidaS (Middle\u00adware as a Service) is a light\u00adweight alter\u00adna\u00adtive compared to commer\u00adcial systems. MidaS provi\u00addes an inter\u00adface that is tailor-made for the migra\u00adted online programs and is easy to integrate into a Java server environment.<\/p>\n<p>Example of middle\u00adware migration:<\/p>\n<\/div>\n<div id=\"attachment_6046\" style=\"width: 370px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6046\" class=\"wp-image-6046\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv.png\" alt=\"Example of migration of a COBOL server using middleware into a web service\" width=\"360\" height=\"237\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv.png 3792w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv-300x198.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv-1024x675.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv-768x506.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv-1536x1013.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv-2048x1350.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_csimpsrv-1320x870.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6046\" class=\"wp-caption-text\">Example of migration of a COBOL server using middle\u00adware into a web service<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"file-migration\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-file-migration\" aria-controls=\"accordion-content-file-migration\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>FILE MIGRATION<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-file-migration\" id=\"accordion-content-file-migration\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p><a href=\"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/technology-and-tools\/fire-2\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-2383\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/09\/logo_fire.svg\" alt width=\"296\" height=\"107\"><\/a>The data files used in COBOL are trans\u00adfor\u00admed into relatio\u00adnal database tables during migration by our tool <a href=\"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/technology-and-tools\/fire-2\/\">FiRe<\/a>. In doing so, the diffe\u00adrent forms of organi\u00adsa\u00adtion and access methods are taken into account. Database tables are acces\u00adsed in the conver\u00adted Java programs by using methods, which are provi\u00added by the libra\u00adries. These methods emulate the origi\u00adnal COBOL state\u00adments on file work (<code>OPEN<\/code>, <code>READ<\/code>, <code>READ NEXT<\/code>, <code>CLOSE<\/code>, \u2026).<\/p>\n<p>Examp\u00adles of file migration:<\/p>\n<div id=\"attachment_6048\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6048\" class=\"wp-image-6048\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur.png\" alt=\"Example of the migration of file definition and sentence structure\" width=\"360\" height=\"237\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur.png 3792w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur-300x198.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur-1024x675.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur-768x506.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur-1536x1013.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur-2048x1350.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_struktur-1320x870.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6048\" class=\"wp-caption-text\">Example of the migration of file defini\u00adtion and sentence structure<\/p><\/div>\n<div id=\"attachment_6049\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6049\" class=\"wp-image-6049\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program.png\" alt=\"Example of the migration of file accesses\" width=\"360\" height=\"237\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program.png 3792w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program-300x198.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program-1024x675.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program-768x506.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program-1536x1013.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program-2048x1350.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_filehandling_program-1320x870.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6049\" class=\"wp-caption-text\">Example of the migration of file accesses<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"migration-of-embedded-sql\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-migration-of-embedded-sql\" aria-controls=\"accordion-content-migration-of-embedded-sql\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>MIGRATION OF EMBEDDED SQL&nbsp;<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-migration-of-embedded-sql\" id=\"accordion-content-migration-of-embedded-sql\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Static SQL state\u00adments embedded into the COBOL source code are conver\u00adted into dynamic SQL state\u00adments. Mapping the function\u00ada\u00adlity existing in the basic system, methods for adminis\u00adt\u00adra\u00adting the database connec\u00adtion, for database access, reading and writing of data into host varia\u00adbles and for error handling are integra\u00adted into the Java libra\u00adries. Accor\u00adding to experi\u00adence, the transi\u00adtion to dynamic SQL does not result in runtime disad\u00advan\u00adta\u00adges. At the same time, it allows flexi\u00adble creation and modifi\u00adca\u00adtion of SQL statements.<\/p>\n<p>Examp\u00adles of migration of embedded SQL:<\/p>\n<div id=\"attachment_6050\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6050\" class=\"wp-image-6050\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select.png\" alt=\"Example of migration of a SELECT statement with input and output host variables\" width=\"360\" height=\"200\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select.png 4500w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select-300x167.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select-1024x569.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select-768x427.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select-1536x853.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select-2048x1138.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_select-1320x733.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6050\" class=\"wp-caption-text\">Example of migration of a SELECT state\u00adment with input and output host variables<\/p><\/div>\n<div id=\"attachment_6052\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6052\" class=\"wp-image-6052\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert.png\" alt=\"Example of migration of an INSERT statement\" width=\"360\" height=\"200\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert.png 4500w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert-300x167.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert-1024x569.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert-768x427.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert-1536x853.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert-2048x1138.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_insert-1320x733.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6052\" class=\"wp-caption-text\">Example of migration of an INSERT statement<\/p><\/div>\n<div id=\"attachment_6051\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-6051\" class=\"wp-image-6051\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor.png\" alt=\"Example of migration of curser handling statements \" width=\"360\" height=\"200\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor.png 4500w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor-300x167.png 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor-1024x569.png 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor-768x427.png 768w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor-1536x853.png 1536w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor-2048x1138.png 2048w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/cojac_sql_cursor-1320x733.png 1320w\" sizes=\"(max-width: 360px) 100vw, 360px\"><\/a><p id=\"caption-attachment-6051\" class=\"wp-caption-text\">Example of migration of cursor handling statements<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"migration-of-screen-masks\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-migration-of-screen-masks\" aria-controls=\"accordion-content-migration-of-screen-masks\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>MIGRATION OF SCREEN MASKS<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-migration-of-screen-masks\" id=\"accordion-content-migration-of-screen-masks\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p><a href=\"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/technology-and-tools\/matrix-2\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-2615\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/03\/matrix_testlogo_ci.png.jpg\" alt width=\"296\" height=\"107\" srcset=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/03\/matrix_testlogo_ci.png.jpg 1500w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/03\/matrix_testlogo_ci.png-300x109.jpg 300w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/03\/matrix_testlogo_ci.png-1024x371.jpg 1024w, https:\/\/proetcon.de\/wp-content\/uploads\/2021\/03\/matrix_testlogo_ci.png-768x278.jpg 768w\" sizes=\"(max-width: 296px) 100vw, 296px\"><\/a>The migration of the ASCII masks to web inter\u00adfaces is carried out by our tool <a href=\"https:\/\/proetcon.de\/index.php\/en\/software-migration-2\/technology-and-tools\/matrix-2\/\">MaTriX<\/a>. A so-called mask server as a compo\u00adnent of MaTriX coordi\u00adna\u00adtes the infor\u00adma\u00adtion exchange between inter\u00adfaces and web services via messages.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"panel-gb4981-69d189ecdac41-3-0-2\" class=\"so-panel widget widget_siteorigin-panels-builder panel-last-child\" data-index=\"10\"><div class=\"panel-widget-style panel-widget-style-for-gb4981-69d189ecdac41-3-0-2\"><div id=\"pl-w69712a6dafe5b\" class=\"panel-layout wp-block-siteorigin-panels-layout-block\"><div id=\"pg-w69712a6dafe5b-0\" class=\"panel-grid panel-no-style\"><div id=\"pgc-w69712a6dafe5b-0-0\" class=\"panel-grid-cell\"><div id=\"panel-w69712a6dafe5b-0-0-0\" class=\"so-panel widget widget_text panel-first-child\" data-index=\"0\">\t\t\t<div class=\"textwidget\"><h2>FAQ ON LANGUAGE MIGRATION<\/h2>\n<\/div>\n\t\t<\/div><div id=\"panel-w69712a6dafe5b-0-0-1\" class=\"so-panel widget widget_sow-accordion\" data-index=\"1\"><div class=\"so-widget-sow-accordion so-widget-sow-accordion-default-4bd80172fa8c\"><div>\n\t<div class=\"sow-accordion\">\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"does-this-really-work-automatically-isnt-there-a-lot-of-manual-work-to-do\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-does-this-really-work-automatically-isn%e2%80%99t-there-a-lot-of-manual-work-to-do\" aria-controls=\"accordion-content-does-this-really-work-automatically-isn%e2%80%99t-there-a-lot-of-manual-work-to-do\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tDoes this really work automa\u00adti\u00adcally? Isn\u2019t there a lot of manual work to&nbsp;do?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-does-this-really-work-automatically-isn%e2%80%99t-there-a-lot-of-manual-work-to-do\" id=\"accordion-content-does-this-really-work-automatically-isn%e2%80%99t-there-a-lot-of-manual-work-to-do\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>We have proved in several migration projects that this works (e.g. COBOL to Java at ITZBund and S\u00fcdLea\u00adsing). For COBOL to Java, large parts of the COBOL code (95\u201399 %) can be conver\u00adted automa\u00adti\u00adcally. The CoJaC tool genera\u00adtes seman\u00adti\u00adcally equiva\u00adlent Java code. The remai\u00adning 1\u20135 % are clearly indica\u00adted, for example, by appro\u00adpriate comments facili\u00adta\u00adting the manual conversion.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"do-the-converted-java-programs-comply-with-an-object-oriented-concept\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-do-the-converted-java-programs-comply-with-an-object-oriented-concept\" aria-controls=\"accordion-content-do-the-converted-java-programs-comply-with-an-object-oriented-concept\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tDo the conver\u00adted Java programs comply with an object-orien\u00adted concept?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-do-the-converted-java-programs-comply-with-an-object-oriented-concept\" id=\"accordion-content-do-the-converted-java-programs-comply-with-an-object-oriented-concept\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>The COBOL programs were imple\u00admen\u00adted in a proce\u00addu\u00adral language. A redis\u00adtri\u00adbu\u00adtion of function\u00ada\u00adlity into indivi\u00addual classes and methods in the sense of the object-orien\u00adted concept is not automa\u00adti\u00adcally possi\u00adble. This is not neces\u00ads\u00ada\u00adrily desira\u00adble since the develo\u00adpers must recog\u00adnise the code. A future, object-orien\u00adted further develo\u00adp\u00adment of the genera\u00adted Java appli\u00adca\u00adti\u00adons can, of course, be&nbsp;done.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"is-the-generated-code-maintainable-and-suitable-for-further-development\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-is-the-generated-code-maintainable-and-suitable-for-further-development\" aria-controls=\"accordion-content-is-the-generated-code-maintainable-and-suitable-for-further-development\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tIs the genera\u00adted code maintainable and suita\u00adble for further development?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-is-the-generated-code-maintainable-and-suitable-for-further-development\" id=\"accordion-content-is-the-generated-code-maintainable-and-suitable-for-further-development\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Yes, defini\u00adtely. The basic struc\u00adture of the genera\u00adted Java code is analog\u00adous to the COBOL code. This increa\u00adses the recogni\u00adtion effect. In addition, comments are inser\u00adted at the right positi\u00adons of the target code. The develo\u00adpers of the old system (Java knowledge being the prere\u00adqui\u00adsite) will find their way quickly. There are enough reference projects for automa\u00adtic language trans\u00adfor\u00adma\u00adtion from COBOL to Java, which practi\u00adcally prove that the genera\u00adted code is maintainable and perfor\u00admant. The available, modern IDEs (e.g. Intel\u00adliJ and Eclipse) then allow a comfor\u00adta\u00adble further development.<\/p>\n<p>Concerns are often expres\u00adsed by compe\u00adti\u00adtors who market their own COBOL develo\u00adp\u00adment environ\u00adments and are, there\u00adfore, not interes\u00adted in migra\u00adting \u201caway from&nbsp;COBOL\u201d.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"which-cobol-statements-cannot-be-converted-completely\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-which-cobol-statements-cannot-be-converted-completely\" aria-controls=\"accordion-content-which-cobol-statements-cannot-be-converted-completely\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWhich COBOL state\u00adments cannot be conver\u00adted completely?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-which-cobol-statements-cannot-be-converted-completely\" id=\"accordion-content-which-cobol-statements-cannot-be-converted-completely\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Those state\u00adments, for which Java does not provide the corre\u00adspon\u00adding language resour\u00adces, are not comple\u00adtely conver\u00adti\u00adble. This mainly concerns the so-called \u201ccompi\u00adler-direc\u00adting state\u00adments\u201d. These are first imple\u00admen\u00adted during the trans\u00adla\u00adtion of the COBOL program so to say in a prepro\u00adces\u00adsor step. Java, however, does not provide a prepro\u00adces\u00adsor. Thus, these state\u00adments cannot be conver\u00adted with the common mecha\u00adnisms. CoJaC includes a sophisti\u00adca\u00adted mecha\u00adnism to convert copybooks into separate Java classes.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"what-about-go-to-there-are-no-jump-statements-available-in-java\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-what-about-go-to-there-are-no-jump-statements-available-in-java\" aria-controls=\"accordion-content-what-about-go-to-there-are-no-jump-statements-available-in-java\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWhat about GO TO? There are no jump state\u00adments available in&nbsp;Java.&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-what-about-go-to-there-are-no-jump-statements-available-in-java\" id=\"accordion-content-what-about-go-to-there-are-no-jump-statements-available-in-java\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<div class=\"white_back\">\n<p><code>GO TO<\/code> state\u00adments can be migra\u00adted comple\u00adtely automa\u00adti\u00adcally. First, an attempt is made to replace them by Java typical state\u00adments. Jumps to the end of a section, for example, are trans\u00adla\u00adted into Java by a <code>return<\/code> instruc\u00adtion. If this is not possi\u00adble, the CoJaC libra\u00adries take over the flow control. In the program, <code>GO TO<\/code> is then execu\u00adted by calling a <code>skip()<\/code> method.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"isnt-it-a-fact-that-many-java-atypical-constructs-arise-during-migration-proving-that-the-result-is-a-cobol-program-in-java-notation\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-isn%e2%80%99t-it-a-fact-that-many-%e2%80%9cjava-atypical%e2%80%9d-constructs-arise-during-migration-proving-that-the-result-is-a-cobol-program-in-java-notation\" aria-controls=\"accordion-content-isn%e2%80%99t-it-a-fact-that-many-%e2%80%9cjava-atypical%e2%80%9d-constructs-arise-during-migration-proving-that-the-result-is-a-cobol-program-in-java-notation\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tIsn\u2019t it a fact that many \u201cJava-atypi\u00adcal\u201d constructs arise during migration, proving that the result is a COBOL program in Java notation?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-isn%e2%80%99t-it-a-fact-that-many-%e2%80%9cjava-atypical%e2%80%9d-constructs-arise-during-migration-proving-that-the-result-is-a-cobol-program-in-java-notation\" id=\"accordion-content-isn%e2%80%99t-it-a-fact-that-many-%e2%80%9cjava-atypical%e2%80%9d-constructs-arise-during-migration-proving-that-the-result-is-a-cobol-program-in-java-notation\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>The state\u00adments for model\u00adling COBOL constructs into Java constructs were delibera\u00adtely chosen in such a way that the genera\u00adted code is typical for Java. For example, Java classes encap\u00adsu\u00adla\u00adting all neces\u00adsary infor\u00adma\u00adtion, such as length etc., and offering methods to adminis\u00adtrate them are provi\u00added for diffe\u00adrent data types in libra\u00adries. Where possi\u00adble, the native Java state\u00adments are directly used for loops (<code>while<\/code>, <code>for<\/code>) or <code>if<\/code> statements.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"will-my-programmers-recognise-the-source-code-how-significant-are-the-structural-modifications\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-will-my-programmers-recognise-the-source-code-how-significant-are-the-structural-modifications\" aria-controls=\"accordion-content-will-my-programmers-recognise-the-source-code-how-significant-are-the-structural-modifications\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWill my programm\u00aders recog\u00adnise the source code? How signi\u00adfi\u00adcant are the struc\u00adtu\u00adral modifications?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-will-my-programmers-recognise-the-source-code-how-significant-are-the-structural-modifications\" id=\"accordion-content-will-my-programmers-recognise-the-source-code-how-significant-are-the-structural-modifications\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\tThe basic struc\u00adture of a program remains identi\u00adcal. A program is conver\u00adted into a class, data struc\u00adtures become the (private) data fields of this class and indivi\u00addual sections of the <code>PROCEDURE DIVISION<\/code> become class methods. In doing so, the order within the source code remains unchanged.&nbsp;<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"doesnt-that-result-in-a-lot-of-clones\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-doesn%e2%80%99t-that-result-in-a-lot-of-clones\" aria-controls=\"accordion-content-doesn%e2%80%99t-that-result-in-a-lot-of-clones\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tDoesn\u2019t that result in a lot of clones?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-doesn%e2%80%99t-that-result-in-a-lot-of-clones\" id=\"accordion-content-doesn%e2%80%99t-that-result-in-a-lot-of-clones\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Copybooks are conver\u00adted into separate classes. Even if these copybooks are used several times, only one class will be created. Clones are only created when using <code>COPY<\/code> with <code>REPLACING<\/code> clause or <code>COPY<\/code> in the <code>PROCEDURE DIVISION<\/code>. We have with JPackage a tool capable of reuni\u00adting the resul\u00adtant clones.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"would-it-not-be-better-to-develop-codes-in-java-anew\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-would-it-not-be-better-to-develop-codes-in-java-anew\" aria-controls=\"accordion-content-would-it-not-be-better-to-develop-codes-in-java-anew\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWould it not be better to develop codes in Java&nbsp;anew?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-would-it-not-be-better-to-develop-codes-in-java-anew\" id=\"accordion-content-would-it-not-be-better-to-develop-codes-in-java-anew\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>In addition to the signi\u00adfi\u00adcantly higher costs, you should also consider the project duration in this decis\u00adion. If more than 95 % of the Java code is genera\u00adted automa\u00adti\u00adcally, the program is of course conver\u00adted more rapidly than manually. Code freezes and poten\u00adtial blocking times during further development\/program mainten\u00adance will thus be minimi\u00adsed. Our experi\u00adence has shown that the software migration in relation to a new develo\u00adp\u00adment lies at 1:8, which means that if you calcu\u00adlate 5 man-years for a migration project using trans\u00adfor\u00adma\u00adtion tools, you will need 40 man-years for a redeve\u00adlo\u00adp\u00adment of the same program system.<\/p>\n<p>There are two alter\u00adna\u00adtive approa\u00adches for a redeve\u00adlo\u00adp\u00adment: either you rewrite the origi\u00adnal program 1:1 in Java, in which case the code will be similar to the automa\u00adti\u00adcally migra\u00adted code, and you can also automa\u00adti\u00adcally migrate; or you extract the business logic of the program, create a speci\u00adfi\u00adca\u00adtion and then develop the program anew. The extra\u00adc\u00adtion of the business logic is however a very time-consum\u00ading and error-prone process.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"can-java-developers-who-did-not-know-the-cobol-code-before-and-cannot-handle-it-get-used-to-working-with-the-migrated-programs\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-can-java-developers-who-did-not-know-the-cobol-code-before-and-cannot-handle-it-get-used-to-working-with-the-migrated-programs\" aria-controls=\"accordion-content-can-java-developers-who-did-not-know-the-cobol-code-before-and-cannot-handle-it-get-used-to-working-with-the-migrated-programs\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCan Java develo\u00adpers who did not know the COBOL code before and cannot handle it get used to working with the migra\u00adted programs?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-can-java-developers-who-did-not-know-the-cobol-code-before-and-cannot-handle-it-get-used-to-working-with-the-migrated-programs\" id=\"accordion-content-can-java-developers-who-did-not-know-the-cobol-code-before-and-cannot-handle-it-get-used-to-working-with-the-migrated-programs\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Of course, yes. This is another advan\u00adtage of software migration. The develo\u00adpers maintai\u00adning the conver\u00adted programs in future do not have to know COBOL. They can familia\u00adrise themsel\u00adves with the environ\u00adment solely on the basis of the Java&nbsp;code.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"i-want-to-retain-my-cobol-programmers-how-high-is-the-effort-for-training-when-switching-over\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-i-want-to-retain-my-cobol-programmers-how-high-is-the-effort-for-training-when-switching-over\" aria-controls=\"accordion-content-i-want-to-retain-my-cobol-programmers-how-high-is-the-effort-for-training-when-switching-over\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tI want to retain my COBOL programm\u00aders. How high is the effort for training when switching over?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-i-want-to-retain-my-cobol-programmers-how-high-is-the-effort-for-training-when-switching-over\" id=\"accordion-content-i-want-to-retain-my-cobol-programmers-how-high-is-the-effort-for-training-when-switching-over\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Well, they have to learn Java. There is no way around this. These programm\u00aders, however, have the advan\u00adtage that they are already familiar with the techni\u00adcal background of the programs, whereas newco\u00admers have, of course, to first acquire the skills.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"are-converted-programs-not-substantially-slower-and-do-need-much-more-memory\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-are-converted-programs-not-substantially-slower-and-do-need-much-more-memory\" aria-controls=\"accordion-content-are-converted-programs-not-substantially-slower-and-do-need-much-more-memory\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAre conver\u00adted programs not substan\u00adti\u00adally slower and do need much more memory?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-are-converted-programs-not-substantially-slower-and-do-need-much-more-memory\" id=\"accordion-content-are-converted-programs-not-substantially-slower-and-do-need-much-more-memory\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>This is also an argument frequently voiced by custo\u00admers but that has never been found to be true in earlier projects. Perfor\u00admance problems only occur limited to indivi\u00addual programs and could be elimi\u00adna\u00adted by suita\u00adble optimi\u00adsa\u00adtion measu\u00adres. Thanks to the advan\u00adced technology of the \u201cjust-in-time-Compi\u00adler\u201d, today\u2019s JVM process Java programs only slightly slower than the proces\u00adsor the compi\u00adled COBOL programs.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"how-experienced-is-pro-et-con-in-software-migration\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-how-experienced-is-pro-et-con-in-software-migration\" aria-controls=\"accordion-content-how-experienced-is-pro-et-con-in-software-migration\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tHow experi\u00aden\u00adced is pro et con in software migration?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-how-experienced-is-pro-et-con-in-software-migration\" id=\"accordion-content-how-experienced-is-pro-et-con-in-software-migration\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Tools for software migration require exten\u00adsive develo\u00adp\u00adment effort. In addition, very speci\u00adfic know-how in infor\u00adma\u00adtics (compi\u00adler technology) is neces\u00adsary. We have 30 years of experi\u00adence in the develo\u00adp\u00adment of tools for software migration. The basis is in its years of research work in the field of compi\u00adler technology at the Faculty for Infor\u00adma\u00adtics at the TU Chemnitz. We still carry out research and develo\u00adp\u00adment in coope\u00adra\u00adtion with the univer\u00adsi\u00adties of Koblenz-Landau and Olden\u00adburg. The results are directly reflec\u00adted in our techno\u00adlo\u00adgies and&nbsp;tools.<\/p>\n<p>In the course of past years, diffe\u00adrent types of parser, code genera\u00adtors, format\u00adting and meta tools have been develo\u00adped which are all combi\u00adned in our pecBOX (pro et con \u2013 Toolbox for Software Migration) and used in our migration projects. No migration project is like the other. For new projects, neces\u00adsary, new migration tools are compi\u00adled from the pecBOX compon\u00adents thus reducing the develo\u00adp\u00adment time. This generic approach makes migration projects less expen\u00adsive and reduces the project duration. This has been affirmed by numerous reference custo\u00admers like Amadeus Germany GmbH, MAN Truck &amp; Bus SE, ITZBund, S\u00fcdLea\u00adsing GmbH, to name a&nbsp;few.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/div>\n<\/div>\n<\/div><\/div><div id=\"panel-w69712a6dafe5b-0-0-2\" class=\"so-panel widget widget_text\" data-index=\"2\">\t\t\t<div class=\"textwidget\"><div>\n<div><strong><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/faq_language_migration.pdf\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3315\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/04\/pdf.svg\" alt width=\"20\" height=\"20\"><\/a> <\/strong><strong><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/08\/faq_language_migration.pdf\" target=\"_blank\" rel=\"noopener\">Download FAQ on language migration<\/a><\/strong><\/div>\n<\/div>\n<\/div>\n\t\t<\/div><div id=\"panel-w69712a6dafe5b-0-0-3\" class=\"so-panel widget widget_text\" data-index=\"3\"><div class=\"panel-widget-style panel-widget-style-for-w69712a6dafe5b-0-0-3\">\t\t\t<div class=\"textwidget\"><h2>FAQ ON AI-BASED LANGUAGE MIGRATION<\/h2>\n<\/div>\n\t\t<\/div><\/div><div id=\"panel-w69712a6dafe5b-0-0-4\" class=\"so-panel widget widget_sow-accordion\" data-index=\"4\"><div class=\"so-widget-sow-accordion so-widget-sow-accordion-default-4bd80172fa8c\"><div>\n\t<div class=\"sow-accordion\">\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"can-a-legacy-software-system-be-migrated-using-just-one-ai-tool\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-can-a-legacy-software-system-be-migrated-using-just-one-ai-tool\" aria-controls=\"accordion-content-can-a-legacy-software-system-be-migrated-using-just-one-ai-tool\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCan a legacy software system be migra\u00adted using just one AI&nbsp;tool?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-can-a-legacy-software-system-be-migrated-using-just-one-ai-tool\" id=\"accordion-content-can-a-legacy-software-system-be-migrated-using-just-one-ai-tool\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>No. Rather than one migration tool, several tools are needed in a migration project. Common AI tools merely focus on programme code conver\u00adsion. In a migration project, however, further artefacts need to be migra\u00adted as well, e. g. JCL, files, databa\u00adses, middle\u00adware and screens. It requi\u00adres several specia\u00adli\u00adsed tools to automate the migration process.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"ai-tools-might-provide-support-for-the-actual-programme-conversion-e-g-cobol-to-java-though\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-ai-tools-might-provide-support-for-the-actual-programme-conversion-e-g-cobol-to-java-though\" aria-controls=\"accordion-content-ai-tools-might-provide-support-for-the-actual-programme-conversion-e-g-cobol-to-java-though\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAI tools might provide support for the actual programme conver\u00adsion, e. g. COBOL to Java, though?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-ai-tools-might-provide-support-for-the-actual-programme-conversion-e-g-cobol-to-java-though\" id=\"accordion-content-ai-tools-might-provide-support-for-the-actual-programme-conversion-e-g-cobol-to-java-though\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\tCOBOL, for example, includes a complex data type concept for which no 1:1 mapping exists in Java. In addition, COBOL conta\u00adins \u2018language specia\u00adli\u00adties\u2019 such as overlay\u00ading varia\u00adbles of diffe\u00adrent data types and others. Our experi\u00adments with various AI tools have shown that they essen\u00adti\u00adally map COBOL data types to Java data types. The conver\u00adted Java program\u00admes are execu\u00adta\u00adble, but deliver incor\u00adrect results. In a migration project, however, seman\u00adtic equiva\u00adlence between the old and new systems is the most important factor. Of course, these tools can be trained accor\u00addin\u00adgly. However, achie\u00adving a complete mapping from COBOL to Java requi\u00adres a great deal of effort, which, accor\u00adding to our findings, is close to that of a new develo\u00adp\u00adment. In our tools, these mappings are already available in the form of a Java library, which currently achie\u00adves a 95\u201399% coverage. To achieve this level of coverage in migration projects, years (even decades) of develo\u00adp\u00adment were requi\u00adred. Accor\u00adding to our experi\u00adence, AI tools speci\u00adfi\u00adcally trained for language conver\u00adsion, e. g. COBOL to Java, do not achieve this level of coverage. This then requi\u00adres manual inter\u00adven\u00adtion and exten\u00adsi\u00adons in the conver\u00adted Java program\u00admes, inevi\u00adta\u00adbly leading to a major manual effort and suscep\u00adti\u00adbi\u00adlity to errors.&nbsp;<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"can-ai-tools-migrate-procedural-cobol-code-directly-into-object-oriented-java-code-i-read-something-like-that-on-the-internet\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-can-ai-tools-migrate-procedural-cobol-code-directly-into-object-oriented-java-code-i-read-something-like-that-on-the-internet\" aria-controls=\"accordion-content-can-ai-tools-migrate-procedural-cobol-code-directly-into-object-oriented-java-code-i-read-something-like-that-on-the-internet\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCan AI tools migrate proce\u00addu\u00adral COBOL code directly into object-orien\u00adted Java code? I read something like that on the internet.&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-can-ai-tools-migrate-procedural-cobol-code-directly-into-object-oriented-java-code-i-read-something-like-that-on-the-internet\" id=\"accordion-content-can-ai-tools-migrate-procedural-cobol-code-directly-into-object-oriented-java-code-i-read-something-like-that-on-the-internet\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\tIn the last years (decades), a number of scien\u00adti\u00adfic papers on the automa\u00adtic conver\u00adsion of proce\u00addu\u00adral code into object-orien\u00adted code (indepen\u00addent of migration) has been published. To our knowledge, none of these papers has produ\u00adced a result that is satis\u00adfac\u00adto\u00adrily practi\u00adcal. If such methods do not exist, there can be no tool that automa\u00adti\u00adcally imple\u00adments such algorithms \u2013 regard\u00adless of whether it is an AI tool or not. Of course, future develo\u00adp\u00adments of the migra\u00adted system can be object-orien\u00adted, so that over time, object orien\u00adta\u00adtion incre\u00adasingly domina\u00adtes, also through further refac\u00adto\u00adring of the migra\u00adted programme system in maintenance\/further develo\u00adp\u00adment. This is confirmed, for example, in projects that we are maintai\u00adning and further develo\u00adping on behalf of custo\u00admers after a successful migration.&nbsp;<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\" data-anchor-id=\"what-support-can-ai-tools-currently-provide-in-a-migration-project\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-what-support-can-ai-tools-currently-provide-in-a-migration-project\" aria-controls=\"accordion-content-what-support-can-ai-tools-currently-provide-in-a-migration-project\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWhat support can AI tools currently provide in a migration project?&nbsp;<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-what-support-can-ai-tools-currently-provide-in-a-migration-project\" id=\"accordion-content-what-support-can-ai-tools-currently-provide-in-a-migration-project\" style=\"display: none;\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p>Currently, AI tools might offer a range of useful appli\u00adca\u00adti\u00adons in migration projects, e. g. test support, code commen\u00adting, refac\u00adto\u00adring and programme documen\u00adta\u00adtion. However, only as assistants. As regards IBM watsonx Code Assistant for Z, this function\u00ada\u00adlity is already embedded in the&nbsp;name.&nbsp;<\/p>\n<p>If a custo\u00admer wants to change the programming language and\/or platform within a manageable project timeframe and budget, a tool-supported, compi\u00adler-based software migration currently is the method of choice. In this process, AI tools could provide valuable, assis\u00adtance-based support.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/div>\n<\/div>\n<\/div><\/div><div id=\"panel-w69712a6dafe5b-0-0-5\" class=\"so-panel widget widget_text panel-last-child\" data-index=\"5\">\t\t\t<div class=\"textwidget\"><div>\n<div><strong><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2026\/01\/faq_ai_language_migration.pdf\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3315\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/04\/pdf.svg\" alt width=\"20\" height=\"20\"><\/a> <\/strong><strong><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2026\/01\/faq_ai_language_migration.pdf\" target=\"_blank\" rel=\"noopener\">Download FAQ on AI-based language migration<\/a><\/strong><\/div>\n<\/div>\n<\/div>\n\t\t<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n\n<div class=\"so-widget-sow-accordion so-widget-sow-accordion-default-9dc8e22e8c31\"><div>\n\t<div class=\"sow-accordion\">\n\t\t\t<div class=\"sow-accordion-panel\n\t\t sow-accordion-panel-open\t\t\" data-anchor-id=\"downloads\">\n\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-downloads\" aria-controls=\"accordion-content-downloads\" aria-expanded=\"true\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<b>DOWNLOADS<\/b>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf218\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"\uf209\" aria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sow-accordion-panel-content\" role=\"region\" aria-labelledby=\"accordion-label-downloads\" id=\"accordion-content-downloads\">\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<p><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/09\/datasheet_cojac.pdf\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3315\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/04\/pdf.svg\" alt width=\"20\" height=\"20\"><\/a>&nbsp;<a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/09\/datasheet_cojac.pdf\" target=\"_blank\" rel=\"noopener\">CoJaC \u2013 data&nbsp;sheet<\/a><\/p>\n<p><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/every_cobol_java_migration_project_holds_new_surprises_wsre22.pdf\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3315\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/04\/pdf.svg\" alt width=\"20\" height=\"20\"><\/a><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/05\/every_cobol_java_migration_project_holds_new_surprises_wsre22.pdf\" target=\"_blank\" rel=\"noopener\"> \u201cJedes COBOL-Java-Migra\u00adti\u00adons\u00adpro\u00adjekt birgt neue \u00dcberraschungen\u201d<\/a><br>\nAbstract for 24th Workshop \u201cSoftware-Reengi\u00adnee\u00adring &amp; \u2011Evolu\u00adtion\u201d 2\u20134 May 2022 in Bad Honnef, published&nbsp;in:<br>\n<em>Software\u00adtech\u00adnik-Trends, volume 42, part 2, May&nbsp;2022<\/em><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-3315\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/04\/pdf.svg\" alt width=\"20\"> <a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2023\/03\/success_story_suedleasing_en_ci_22032023.pdf\">Success Story: \u201cSuccessful COBOL Java Migration at S\u00fcdLea\u00adsing&nbsp;GmbH\u201d<\/a><\/p>\n<p><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/09\/success_story_itzbund_en.pdf\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3315\" src=\"https:\/\/proetcon.de\/wp-content\/uploads\/2021\/04\/pdf.svg\" alt width=\"20\" height=\"20\"><\/a><a href=\"https:\/\/proetcon.de\/wp-content\/uploads\/2022\/09\/success_story_itzbund_en.pdf\" target=\"_blank\" rel=\"noopener\"> Success Story: \u201c<span id=\"page158R_mcid62\" class=\"markedContent\"><span dir=\"ltr\" role=\"presentation\">Successful BS2000 Migration at ITZBund<\/span><\/span>\u201d<\/a><\/p>\n<p><a href=\"https:\/\/proetcon.de\/index.php\/en\/downloads\/\"><strong>GO TO DOWNLOAD AREA<\/strong><\/a><\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>HOME &gt; SOFTWARE MIGRATION &gt; TECHNOLOGY AND TOOLS &gt; COJAC CoJaC TECHNOLOGY For complex compi\u00adling proces\u00adses, the use of speci\u00adfic conver\u00adsion tools, so-called trans\u00adla\u00adtors, is neces\u00adsary. Trans\u00adla\u00adtors work by analogy with a compi\u00adler which, via diffe\u00adrent inter\u00adme\u00addiate stages, compi\u00adles source program\u00admes to execu\u00adta\u00adble target code. CoJaC is a trans\u00adla\u00adtor for conver\u00adting histo\u00adri\u00adcal COBOL appli\u00adca\u00adti\u00adons toCon\u00adti\u00adnue reading&nbsp;\u2192<\/p>\n","protected":false},"author":1,"featured_media":7207,"parent":4968,"menu_order":10,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"wp_typography_post_enhancements_disabled":false,"footnotes":""},"class_list":["post-4981","page","type-page","status-publish","has-post-thumbnail","hentry","has-thumb"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/pages\/4981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/comments?post=4981"}],"version-history":[{"count":1,"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/pages\/4981\/revisions"}],"predecessor-version":[{"id":15434,"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/pages\/4981\/revisions\/15434"}],"up":[{"embeddable":true,"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/pages\/4968"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/media\/7207"}],"wp:attachment":[{"href":"https:\/\/proetcon.de\/index.php\/wp-json\/wp\/v2\/media?parent=4981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}