Сообщение Re: Кастомные прекомпиляторы от 23.11.2018 11:51
Изменено 23.11.2018 11:53 swame
Re: Кастомные прекомпиляторы
Здравствуйте, Khimik, Вы писали:
K>Интересно, не пробует ли кто-то из авторов ЯП делать кастомные прекомпиляторы, которые может написать программист-юзер?
K>Я имею в виду следующее (на примере Delphi). Предположим, я пишу библиотеку или exe-файл, которому на вход подаётся Delphi-юнит (паскалевский код), и моя программа его немного модифицирует. Среда разработки показывает в двух вкладках два кода: исходный юнит и юнит, модифицированный моим прекомпилятором. При запуске программы компилируется второй код, и естественно отладчик имеет дело с ним.
K>Вот пример. Есть простой приём оптимизации циклов – размножение. Пусть у меня есть код:
K>
K>Мой прекомпилятор видит qfor6 и преобразует этот код таким образом:
Осталось сравнить оба варианта на реальном измерении скорости. ПОдозреваю, что первый будет работать быстрее, потому что будет оптимизирован встроенным оптимизатором.
K>Интересно, не пробует ли кто-то из авторов ЯП делать кастомные прекомпиляторы, которые может написать программист-юзер?
K>Я имею в виду следующее (на примере Delphi). Предположим, я пишу библиотеку или exe-файл, которому на вход подаётся Delphi-юнит (паскалевский код), и моя программа его немного модифицирует. Среда разработки показывает в двух вкладках два кода: исходный юнит и юнит, модифицированный моим прекомпилятором. При запуске программы компилируется второй код, и естественно отладчик имеет дело с ним.
K>Вот пример. Есть простой приём оптимизации циклов – размножение. Пусть у меня есть код:
K>
K>qfor6 i:= 0 to count-1 do
K> values[i] := values[i]* values[i];
K>
K>Мой прекомпилятор видит qfor6 и преобразует этот код таким образом:
Осталось сравнить оба варианта на реальном измерении скорости. ПОдозреваю, что первый будет работать быстрее, потому что будет оптимизирован встроенным оптимизатором.
Re: Кастомные прекомпиляторы
Здравствуйте, Khimik, Вы писали:
K>Интересно, не пробует ли кто-то из авторов ЯП делать кастомные прекомпиляторы, которые может написать программист-юзер?
K>Я имею в виду следующее (на примере Delphi). Предположим, я пишу библиотеку или exe-файл, которому на вход подаётся Delphi-юнит (паскалевский код), и моя программа его немного модифицирует. Среда разработки показывает в двух вкладках два кода: исходный юнит и юнит, модифицированный моим прекомпилятором. При запуске программы компилируется второй код, и естественно отладчик имеет дело с ним.
K>Вот пример. Есть простой приём оптимизации циклов – размножение. Пусть у меня есть код:
K>
K>Мой прекомпилятор видит qfor6 и преобразует этот код таким образом:
Осталось сравнить оба варианта на реальном измерении скорости. ПОдозреваю, что вариант с обычным for работать быстрее, потому что будет оптимизирован встроенным оптимизатором.
K>Интересно, не пробует ли кто-то из авторов ЯП делать кастомные прекомпиляторы, которые может написать программист-юзер?
K>Я имею в виду следующее (на примере Delphi). Предположим, я пишу библиотеку или exe-файл, которому на вход подаётся Delphi-юнит (паскалевский код), и моя программа его немного модифицирует. Среда разработки показывает в двух вкладках два кода: исходный юнит и юнит, модифицированный моим прекомпилятором. При запуске программы компилируется второй код, и естественно отладчик имеет дело с ним.
K>Вот пример. Есть простой приём оптимизации циклов – размножение. Пусть у меня есть код:
K>
K>qfor6 i:= 0 to count-1 do
K> values[i] := values[i]* values[i];
K>
K>Мой прекомпилятор видит qfor6 и преобразует этот код таким образом:
Осталось сравнить оба варианта на реальном измерении скорости. ПОдозреваю, что вариант с обычным for работать быстрее, потому что будет оптимизирован встроенным оптимизатором.