Страницы

Поиск по вопросам

понедельник, 9 марта 2020 г.

Как и насколько сложно реализовать механизм изменения кода во время работы программы?

#java


Мои познания пока только опираются на синтаксис и в глубь пока сильно со всяким не
уходил, но интересует такая тема, и попросил бы кого то прокомментировать и по возможности
ответить :

Как и насколько сложно реализовать механизм изменения кода во время работы программы,
и какие в таком механизме недостатки и преимущества (помимо пожалуй того что код будет
динамически изменен там без необходимости повторно все компилировать)
    


Ответы

Ответ 1



Есть такой термин "Метапрограммирование". Определение из википедии: "вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы(в частности, на стадии компиляции их исходного кода), либо программ, которые меняют себя во время выполнения (самомодифицирующийся код)." Первое позволяет получать программы при меньших затратах времени и усилий на кодирование, чем если бы программист писал их вручную целиком, второе позволяет улучшить свойства кода (размер и быстродействие). https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%B0%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 А вот статья про метапрограммирование конкретно на Java: https://habrahabr.ru/post/91239/ Почитайте и погуглите еще материалы про метапрограммирование, думаю, что что-то интересное для себя найдете.

Ответ 2



Есть еще интересная техника изменения логики программы на лету называется аспекты, программирование с помощью аспектов называется аспектно-ориентированным программированием.

Комментариев нет:

Отправить комментарий