Legacy code to modern systems — with verified equivalence

Scriba AI converts COBOL, RPG, PL/I, Natural and 60+ other languages into modern, idiomatic applications — without LLMs. Migration as a service: you send us the code, we return it converted, tested and documented.

Codemotion 2026 · MilanWorkshop

Scriba.AI on stage at Codemotion 2026

We are pleased to announce that on October 29, as part of Codemotion 2026 in Milan, two Scriba.AI founders will present the platform in detail, its advantages over generic LLMs, and how to use it.

A chance to discover the only automatic code-to-code conversion solution: fully Italian, proprietary technology.

  • The Scriba.AI platform in detail
  • Advantages over generic LLMs
  • How to use it, with real migration cases
The workshop

SCRIBA.AI: an Italian AI solution to modernize legacy code

Marco Landi

Marco Landi

Senior Advisor

Michele Laurelli

Michele Laurelli

Head of AI

Thursday, October 29, 2026
Superstudio Più, Via Tortona 27 — Milan
0
LLMs used
proprietary specialized models
0
languages supported
from mainframe to cloud
≤30,000
lines per PoC
closed scope
0
phases with verification gates
deterministic, between every phase
The problem

Migrating a legacy system is hard for one specific reason

The system's behaviour is documented only in the code, or in the minds of the people who built it — and fewer and fewer people know it.

Explore the platform

Rules layered over decades

Business logic built up over time, rarely with up-to-date documentation.

Hidden edge cases

Exceptions handled by a single conditional branch, easy to lose in a rewrite.

Data semantics

Rounding and truncation that depend on the physical representation of the data.

Logic in tables

Parameter tables drive behaviour: part of the rules doesn't live in the code at all.

A successful migration has to preserve all of this — and be able to prove it.

Why Scriba

What makes Scriba AI different

Not a line-by-line translator: Scriba reconstructs the application logic and business rules, then rewrites them in the target stack, following the conventions you set.

01

No LLMs

Proprietary specialized models and deterministic components, coordinated by fully proprietary orchestration. No language model — neither commercial nor open source.

02

Verified equivalence

Differential tests compare the migrated system's outputs with the original's on the same inputs. Anything that doesn't pass the deterministic gates isn't delivered.

03

Idiomatic code

No JOBOL: classes, layers, types, error handling and naming follow your rules — written the way a team that works with that stack every day would write it.

04

Confidentiality

NDA and DPA, code never sent to model providers, air-gapped environment when needed. Delivery via encrypted storage or a private Git repository.

How it works

A six-phase pipeline

A system of specialized models and deterministic components, each dedicated to a well-defined task, coordinated by a proprietary orchestration layer.

01PARSE

Parsing

Syntax tree built with parsers specific to each language and dialect.

dedicated parsers · proprietary lexers
02UNDERSTAND

Semantic analysis

Types, dependencies, control flow and side effects.

dependency graph · type inference
03RECOVER

Logic recovery

Business rules made explicit, traced and separated from the legacy runtime.

intent graph · rule extraction
04REASON

Multi-model

Specialized models in an ensemble: disagreement triggers an escalation.

multi-model · orchestrator
05VERIFY

Validation

Compilation, types, client rules, differential tests on behaviour.

deterministic gates · diff suite
06EMIT

Generation

Idiomatic target code, project structure, build and evidence.

type-aware · framework-aware
Between every phase

Deterministic verification gates: no phase moves forward unless the previous one has been verified.

The comparison

Why Scriba AI and not a commercial AI service?

Sooner or later, every approach produces code that compiles. The difference is what you can prove about the result.

Understanding of business logic

Generic LLMs
Limited to the fragment
Agents on LLMs
Limited to the agent's context

Scriba AIReconstructed across the whole scope

Quality of the code produced

Generic LLMs
Variable
Agents on LLMs
Variable

Scriba AIIdiomatic, following your rules

Equivalence verification

Generic LLMs
None
Agents on LLMs
To be built

Scriba AIDifferential tests against the original

Code confidentiality

Generic LLMs
Code sent to third parties
Agents on LLMs
Code sent to third parties, or infrastructure to run

Scriba AIGoverned by NDA and DPA, nothing sent to model providers

Cost predictability

Generic LLMs
Low on large scopes
Agents on LLMs
Low: token consumption or infrastructure

Scriba AIFixed, guaranteed price

Accountability for the result

Generic LLMs
Yours
Agents on LLMs
Yours

Scriba AIScriba's, until every gate is passed

Ratings describe the typical behaviour of each approach; individual tools or projects may differ.

The question to ask any vendor

How do you prove that the migrated system behaves like the original?

For Scriba, a migration is complete when the code passes every test and quality gate set by the client, including differential tests that compare its outputs with the original system's on the same inputs.

Reference case

COBOL ILE batch on IBM i for a leasing company

Extraction of financial transactions, migrated according to the client's backend and frontend instruction files.

Original system

COBOL ILE batch on IBM i

COBOL ILEIBM i
Migrated system
BackendJava 25 / Spring Boot 4.1
FrontendReact 18 / TypeScript
DatabaseSQL Server / Liquibase
95

source members mapped to Java classes

16

documents delivered, from the executive summary to the operations runbook

Bit-perfect

validation methodology for equivalence with the original system

3

rounds of review by independent reviewers, with every resolution traced

Proof of concept

Evaluate Scriba on your own code

The PoC applies the same working model as a full engagement to a smaller scope: you send us a closed scope of code, we return it migrated, tested and documented, with the evidence that every criterion has been met.

Up to 30,000 lines

A closed scope: a complete process with its dependencies, not a sample of files.

Criteria decided in advance

Tests and quality gates declared before kick-off, including differential tests against the original.

A single pass

Complete configuration up front, frozen at kick-off: no drafts, no mid-course corrections.

Seven phases, from qualification to delivery

  1. 01

    Qualification

    NDA and candidate scope

  2. 02

    Package

    Code, instructions, tests, data

  3. 03

    Eligibility

    ≤ 30,000 lines, closed scope

  4. 04

    Kick-off

    Frozen criteria, PoC agreement

  5. 05

    Conversion

    Single pass, verification gates

  6. 06

    Validation

    Every test and quality gate

  7. 07

    Delivery

    Deliverables and a verifiable outcome

ROI calculator

Estimate your migration scenario

Configure your scenario and get an indicative estimate. The actual price is fixed and is set after we analyse your package.

Open the calculator

60+ languages, from mainframe to cloud

From COBOL, RPG, PL/I and Natural to modern stacks, with the target you define: language, architecture and conventions.

COBOL
Java
Python
TypeScript
Natural
Go
RPG/400
C#
Kotlin
FORTRAN
Swift
ABAP
PHP
Rust
VB6
C++
PL/I
Delphi

Ready to evaluate Scriba on your code?

Tell us about the scope you have in mind: together we'll check eligibility, target stack and success criteria.