Давайте решать следующую задачу на С. Имеется заголовчный файл .h, содержащий описание 10 типов структур (GObject-ов, чего хотите). Каждая структура может содержать числа, строки, указатели на другие структуры одного из этих типов. Ссылки между структурами могут быть циклическими. Также в структуре есть поле типа, например, числовое, позволяющее отличать типы структур между собой.
Необходимо: - разработать формат файла, который может хранить такие данные (типа persistency) - написать программу, которая умеет читать такой файл или писать его. - автоматизировать этот труд. Предполагаем, что со временем будут добавляться новые типы структур. Конечно, можно писать новый код сериализации-десериализации вручную, тогда должно быть дано однозначное описание (для обезьяны), как писать этот код. Но лучше, если будет предоставлен автоматический генератор, который берёт файл .h и выдает на выходе код для чтения-записи.
Подобная же задача - для любых языков (меня больше всего интересуют python, ocaml, java, ruby, php). Для динамических языков можно пользоваться динамической рефлексией, а не обрабатывать исходник.