Slide 2
CoJaC – COBOL to Java Converter

CoJaC is our tool for conver­ting histo­ri­cal COBOL appli­ca­ti­ons to modern Java soluti­ons. CoJaC genera­tes maintainable and high-perfor­­mance Java code which is seman­ti­cally equiva­lent to the COBOL code.
During conver­sion, the tool achie­ves an automa­tion level of 95–99 %. CoJaC combi­nes scien­ti­fic know-how in compi­ler construc­tion with core compe­tency resul­ting from successful migration projects.


For complex compi­ling proces­ses, the use of speci­fic conver­sion tools, so-called trans­la­tors, is neces­sary. Trans­la­tors work by analogy with a compi­ler which, via diffe­rent inter­me­diate stages, compi­les source program­mes to execu­ta­ble target code.

CoJaC is a trans­la­tor for conver­ting histo­ri­cal COBOL appli­ca­ti­ons to modern Java soluti­ons. For the requi­re­ments of language conver­sion, we have further develo­ped the general compi­ler model into a trans­la­tor model:

  • FRONT-END: reads the COBOL programme, inclu­ding the corre­spon­ding copybooks, and genera­tes an inter­nal syntax tree which repres­ents the complete COBOL programme
  • TRANS­FOR­MER: converts the COBOL syntax tree to an equiva­lent Java syntax tree. The actual conver­sion is based on syntax trees instead of source code.
  • POST-PROCES­­SOR: splits the complex Java syntax tree into indivi­dual syntax trees which repre­sent the programme struc­ture of the subse­quent Java programme
  • GENERATOR/FORMATTER: genera­tes Java classes and packa­ges from indivi­dual Java syntax trees and automa­ti­cally formats source code accor­ding to client specifications
  • RUNTIME SYSTEM: allows the use of the COBOL data types and function­a­li­ties in conver­ted Java code which do not exist 1:1 in Java


CoJaC stands out for the follo­wing features:

Source code integration 
Integra­tion of the source code comments into the target code

Target code structuring 
Struc­tu­ring of the target code into Java classes and packa­ges by our tool JPackage accor­ding to custo­mer specification

Format­ting of the genera­ted Java code 
User-speci­­fic format­ting of the genera­ted Java code

Support of diffe­rent COBOL dialects 
Support of diffe­rent COBOL dialects (IBM, HPE NonStop, BS2000)


The follo­wing table exempli­fies some migration paths of the basic compon­ents pointing to the corre­spon­ding migration target:




 CoJaC – data sheet

“Jedes COBOL-Java-Migra­ti­ons­pro­jekt birgt neue Überra­schun­gen“
Abstract for 24th Workshop “Software-Reengi­nee­ring & Evolu­tion” 2–4 May 2022 in Bad Honnef, published in:
Software­tech­nik-Trends, volume 42, part 2, May 2022

Success Story: “Successful COBOL Java Migration at SüdLea­sing GmbH”

Success Story: “Successful BS2000 Migration at ITZBund