Можно ли написать код для написания кода? - PullRequest
9 голосов
/ 30 октября 2008

Я слышал, что есть некоторые вещи, которые нельзя делать программисту, но я не знаю, что это такое. Недавно мне пришло в голову одно: было бы неплохо иметь класс, который мог бы сделать копию исходного кода программы, которую он запускает, изменить эту программу и добавить метод к классу, в котором она находится, а затем запустить копия программы и прекращается сама. Можно ли для кода писать код?

Ответы [ 23 ]

1 голос
/ 30 октября 2008

Я делаю это на PHP.

Чтобы сохранить настройки для класса, я сохраняю локальную переменную с именем $data. $ data - это просто словарь / хеш-таблица / ассоциативный массив (в зависимости от того, откуда вы).

Когда вы загружаете класс, он включает php-файл, который в основном определяет данные. Когда я сохраняю класс, он записывает PHP для каждого значения данных. Это медленный процесс записи (и в настоящее время есть некоторые проблемы с параллелизмом), но он читается быстрее, чем просто. Намного быстрее (и легче), чем при использовании базы данных.

Нечто подобное не будет работать для всех языков. Это работает для меня в PHP, потому что PHP очень на лету.

0 голосов
/ 24 декабря 2011

Это называется метапрограммирование и является хорошим способом написания полезных программ и интересной темой для исследования. Искусственные существа Жака Питра: совесть сознательной машины книга должна вас заинтересовать. В основном это связано с компьютерными программами, основанными на мета-знаниях.

Другим связанным термином является многоэтапное программирование (поскольку существует несколько этапов программ, каждый из которых генерирует следующий).

0 голосов
/ 30 октября 2008

Это один из фундаментальных вопросов искусственного интеллекта. Лично я надеюсь, что это невозможно - иначе скоро я останусь без работы !!! :)

...