Gartner Group сообщает, что ручное преобразование между двумя похожими языками происходит со скоростью около 150 строк в день. По их словам, ваш уровень прогресса чуть ниже среднего: -} Хуже того, он предсказывает, что у вас впереди 150 человеко-дней усилий.
Это причина, по которой люди создают инструменты автоматической миграции, которые могут применять правила преобразования регулярно и надежно. Если вам повезет, кто-то сделал это до вас. Число пар, из которых могут захотеть сделать преобразования, огромно, намного больше, чем те, которые сделали , поэтому обычно вам не повезло.
Следующее, что кто-то скажет, это «используйте регулярные выражения». Это, вероятно, не сработает, потому что вам нужно найти языковые конструкции программирования, которые не являются «обычными», а скорее «свободными от контекста».
Один из способов получить инструмент для этого - использовать программные преобразования . Это запрограммированные действия, которые заменяют один фрагмент кода другим. Как правило, им требуется полный анализатор языка, чтобы действия могли работать с элементами программы, как это делают компиляторы, а не с текстовыми строками.
Хороший способ написания программных преобразований использует поверхностный синтаксис языка в качестве шаблонов, по сути, «если вы видите this , замените его на , что ».
Думайте о них как о "регулярных выражениях", которые были созданы для решения проблем, не связанных с контекстом.
Инструмент, который может принимать такие программные преобразования поверхностного синтаксиса,
наш набор инструментов для реинжиниринга программного обеспечения DMS .
Требуется некоторое усилие, чтобы закодировать заслуживающие доверия преобразования. У вас есть около 15 000 строк кода для преобразования. Компромисс между кодированием преобразований и простым кусанием пули и выполнением работы труден, когда количество кода для преобразования настолько мало.