Когда говорят о способностях ИИ в программировании, всё внимание обычно приковано к модным языкам: Python, TypeScript, React или Rust. Но мировой финансовый сектор до сих пор держится на кодовой базе, написанной во времена полета Гагарина.
Около 95% всех операций в банкоматах планеты и клиринг межбанковских платежей обрабатываются программами на COBOL — языке 1959 года. Их авторы давно вышли на пенсию, документация утрачена, а объем репозиториев на GitHub ничтожен. Банки боялись прикасаться к мейнфреймам IBM: одна ошибка в округлении цента грозила судебными исками.
Свежее исследование OpenAI показало, что мы стоим на пороге великого рефакторинга. Модель GPT-6.1 Sol продемонстрировала феноменальный скачок в понимании и портировании низкоресурсных устаревших языков (Low-Resource Languages).
Скачок с 5% до 98%: сила синтетических следов исполнения
На бенчмарке семантической миграции с COBOL на современные языки предыдущее поколение показывало скромные результаты:
- Модель GPT-5.6 Sol справлялась лишь с 5.4% задач;
- Новая GPT-6.1 Sol в базовом режиме рассуждений подняла планку до 86.6%;
- А при включении углубленного режима рассуждений (High Reasoning Effort) точность миграции достигла поразительных 97.9%!
Как OpenAI обучила модель без гигантских массивов кода? Ответ кроется в синтетических следах исполнения (Synthetic Execution Traces). Нейросеть научили симулировать регистры мейнфреймов и пошаговую логику операций в памяти. Модель перестала угадывать текст и научилась физически воспроизводить алгоритмы.
На бенчмарке MultiLangBench (написание движка базы данных на 20 языках) флагман GPT-6 Astra показал результат 87.4%, подняв оценку для COBOL до 72.1%.
Как мы наблюдали в развитии линейки моделей GPT-5.6 Sol, специализация на глубоком рассуждении дает куда больший эффект, чем простое наращивание базы текстов.
Ловушка COMP-3: почему старый код нельзя переводить наивно
Главная опасность при модернизации банковского кода — коварство упакованных десятичных чисел (Packed Decimal, или формат COMP-3 в COBOL).
В COBOL вычисления идут со строгой фиксацией разрядов: если не указана директива ROUNDED, лишние знаки просто отбрасываются (усекаются к нулю). Использование стандартных типов float или double накапливает погрешности и разрушает финансовый баланс.
Вот классический расчет процентов на COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. CALC-INTEREST.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PRINCIPAL PIC 9(7)V99 COMP-3 VALUE 10000.00.
01 WS-RATE PIC 9V9999 COMP-3 VALUE 0.0525.
01 WS-INTEREST PIC 9(5)V99 COMP-3.
PROCEDURE DIVISION.
COMPUTE WS-INTEREST = WS-PRINCIPAL * WS-RATE.
DISPLAY "Calculated Interest: " WS-INTEREST.
STOP RUN.
Модель GPT-6.1 Sol распознает усечение и генерирует эквивалентный код на Rust со строгой десятичной точностью:
use rust_decimal::Decimal;
use rust_decimal_macros::dec;
use rust_decimal::RoundingStrategy;
fn calculate_interest(principal: Decimal, rate: Decimal) -> Decimal {
// В COBOL COMP-3 без явного ROUNDED результат усекается до 2 знаков к нулю
let raw_interest = principal * rate;
raw_interest.round_dp_with_strategy(2, RoundingStrategy::ToZero)
}
fn main() {
let principal = dec!(10000.00);
let rate = dec!(0.0525);
let interest = calculate_interest(principal, rate);
println!("Calculated Interest: {}", interest); // Ровно 525.00
}
Не используйте типы с плавающей запятой при миграции финансовых алгоритмов. Точность достигается только через типы с фиксированной точкой и явное указание стратегии усечения разрядов.
Исследование OpenAI доказывает: логические способности рассуждающих моделей достигли уровня, позволяющего безопасно модернизировать критическую мировую инфраструктуру.
