Slide 2
CoJaC – COBOL to Java Converter

CoJaC is our tool to convert histo­ri­cal COBOL appli­ca­ti­ons into 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 the core compe­tency resul­ting from successful migration projects.


For complex trans­la­tion 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 trans­la­tes source programs into execu­ta­ble target code via diffe­rent inter­me­diate stages.

CoJaC is a trans­la­tor to convert histo­ri­cal COBOL appli­ca­ti­ons into 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 program, inclu­ding the corre­spon­ding copybooks, and genera­tes an inter­nal syntax tree which repres­ents the complete COBOL program.
  • TRANS­FOR­MER: Converts the COBOL syntax tree into an equiva­lent Java syntax tree. The real conver­sion is carried out on the basis of syntax trees and not on the basis of source code.
  • POSTPRO­CES­SOR: Splits the complex Java syntax tree into indivi­dual syntax trees which repre­sent the program struc­ture of the subse­quent Java program.
  • GENERATOR/FORMATTER: Genera­tes Java classes and packa­ges from indivi­dual Java syntax trees and automa­ti­cally format source code accor­ding to client speci­fi­ca­ti­ons.
  • RUNTIME SYSTEM: Allows the use of the COBOL data types and function­a­li­ties of the migra­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