Дайджесты новостей
Живописная сцена рефакторинга кода мейнфрейма с перфокартами COBOL и светящейся современной архитектурой на Rust.

GPT-6.1 Sol и реанимация legacy-кода: как нейросети осваивают COBOL, Fortran и низкоресурсные языки

Когда говорят о способностях ИИ в программировании, всё внимание обычно приковано к модным языкам: 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 доказывает: логические способности рассуждающих моделей достигли уровня, позволяющего безопасно модернизировать критическую мировую инфраструктуру.