Описание тега program-transformation

Преобразование программы - это (обычно механический) процесс модификации одной программы для создания другой.
1 ответ

Вставка дополнительных строк кода с помощью Antlr4

Цель состоит в том, чтобы вставить коды для контроля входа и выхода синхронизированного блока Java. т.е. enteringSync(); synchronized(lockObj){ enteredSync(); ... leavingSync(); } leftSync(); Моя первоначальная мысль заключалась в том, чтобы реализо…
1 ответ

Stratego/XT: понимание основ

Я действительно пытался обдумать первые шаги в понимании Stratego/XT. Я много гуглил, и все веб-ресурсы, которые я обнаружил, вначале делают достаточно большой скачок, так что я просто не могу установить соединение. Позволь мне объяснить. Я понимаю …
24 апр '11 в 02:47
1 ответ

Как называется это символическое преобразование кода?

Я часто пересекаю этот вид преобразования кода (или даже математического преобразования). (Пример Python, но относится к любому языку.) Я пошел на функцию def f(x): return x Я использую это в другой. def g(x): return f(x)*f(x) print g(2) приводит к …
28 май '10 в 14:01
4 ответа

Есть ли формальное определение "рефакторинга"?

Кто-нибудь знает способ определить рефакторинг более формально? ОБНОВИТЬ. Рефакторинг - это пара R = (pre; T), где pre - предварительное условие, которому должна удовлетворять программа, а T - преобразование программы.
19 ноя '08 в 05:38
1 ответ

Использование модуля ast для преобразования случайных констант в исходный код Python

Я заинтересован в написании программы, которая использует встроенный в Python модуль AST для случайного изменения констант в произвольном исходном коде Python. Это преобразование, вероятно, будет связано с обходом представления абстрактного синтакси…
2 ответа

Есть ли язык для автоматического изменения кода?

Я делаю некоторую работу, где мне нужно, чтобы иметь возможность описывать изменения в некотором программном коде, которые должны быть сделаны автоматически. Есть ли язык, который позволяет описать это? Язык должен иметь модули или функции, которые …
08 апр '11 в 15:55
5 ответов

Любой компилятор C с выходом C?

Мы все знаем, что компиляторы C выкладывают сборку. Однако я занимаюсь исследованиями, в которых мой инструмент принимает только узкое подмножество ANSI C. Существуют ли какие-либо трансляторы C-to-C, которые могут встроить функции или сгладить стру…
19 июн '11 в 15:39
4 ответа

Что такое преобразование AST?

Что такое преобразование AST в целом? Я сталкивался с этими словами при чтении блога Groovy. Но что это вообще?
1 ответ

Реассоциация по Мучнику

Я читаю "Расширенное проектирование и реализацию компилятора" Мучника, где на рис. 12.6 перечислены 20 правил преобразования, которые, если они применяются по порядку, выполняют свертывание и повторное связывание констант для перемещения констант. П…
0 ответов

Плавающий проход полностью ленивый лямбда-лифтинг?

Я читаю реализацию функциональных языков: учебное пособие, и столкнулся с проблемой при реализации плавающего прохода полностью ленивого лямбда-лифтинга. Я хотел бы описать, как работает плавающий, чтобы прояснить этот вопрос, если вы знакомы с ним,…
11 ответов

Преобразование источника C в C++

Как бы вы пошли о преобразовании достаточно большой (>300 КБ), достаточно зрелой базы кода C в C++? Тип C I имеет в виду, что он разделен на файлы, примерно соответствующие модулям (т.е. менее детализированные, чем типичная декомпозиция на основе кл…
14 окт '08 в 00:51
2 ответа

Запуск сгенерированного машинного кода ARM на Android дает исключение UnsupportedOperationException с растровыми объектами Java

Мы ( http://www.mosync.com/) скомпилировали наш компилятор ARM с помощью Android NDK, который берет наш внутренний байт-код и генерирует машинный код ARM. При выполнении перекомпилированного кода мы видим огромное увеличение производительности, за о…
2 ответа

Параллельное динамическое программирование

Есть ли хорошие статьи, обсуждающие, как взять динамическую программу и распараллелить ее?
3 ответа

Существует ли инструмент командной строки для извлечения typedef, структуры, перечисления, переменной, функции из файла C или C++?

Мне нужен инструмент командной строки для извлечения определения или объявления (typedef, структура, перечисление, переменная или функция) из исходного файла C или C++. Также был бы удобен способ замены существующего определения / объявления (после …
6 ответов

Как автоматически удалить методы в коде Java

Мне нужно удалить некоторые методы в большом проекте Java, и мне было интересно, есть ли инструменты, которые помогут мне сделать это. Я бы в основном указал подпись и исходную папку, в которой будет удален весь соответствующий метод. Такого не быва…
21 окт '11 в 11:16
2 ответа

Что такое устранение хвостовой рекурсии?

Стив Йегге упомянул об этом в своем блоге, и я понятия не имею, что это значит, кто-то может меня заполнить? Это то же самое, что оптимизация хвостового вызова?
2 ответа

Преобразование исходного кода Java для перемещения аннотаций из геттеров в свойства

У меня есть около 300 объектов JPA, где получатели снабжены аннотациями постоянства. Я хотел бы найти способ переместить все такие аннотации вместо свойств и удалить все методы получения и установки. Я сделал это вручную примерно для 100 из этих кла…
13 июн '19 в 18:52
1 ответ

Как я могу использовать MVars для перемещения весла в моей игре в пингпонг на Haskell?

У меня уже есть функция, которая перемещает 2 весла в игре в пинг-понг в Haskell. Я хочу изменить, чтобы он теперь использовал MVars. Я знаю, что мне нужно изменить wHeld, sHeld, downHeld и upHeld на MVars, но есть идеи, как изменить movePaddle для …
2 ответа

Избегайте двойного рекурсивного вызова в Прологе

У меня есть этот код Пролога: f([ ],-1). f([H|T],S):- f(T,S1), S1>0, !, S is S1+H. f([_|T],S):- f(T,S1), S is S1. Как мне избежать второго (избыточного) рекурсивного вызова f(T,S1), в третьем предложении общий эффект предиката остается таким же? …
13 фев '20 в 11:28
0 ответов

Преобразования AST с помощью babel

Я новичок в работе с babel и пытаюсь использовать шаблон посетителя для выполнения некоторого обхода и преобразований AST. Код JS, который я хочу преобразовать: .data(данные).attr("высота", function (d) { высота возврата - y(Number(d.Speed)); }); AS…