Я использую термин «маршалинг» для обозначения «помещения данных / аргументов в форму, где они могут проходить через интерфейс, который принимает только определенные формы», тогда как «сериализация» определенно означает «представление данных с потоком байтов».То есть сериализация является одним из подходов к маршалингу, но она также использует вне области того, что я бы назвал маршалингом.
Некоторые примеры маршалинга, которые не являются сериализацией:
- Помещениеаргументы системного вызова в регистрах, которые принимает точка входа системного вызова ядра.(Я бы не назвал эту сериализацию, потому что нет никакого абстрактного порядка между регистрами, и потому что некоторые данные могут лежать вне фактических регистров, вместо этого на них указывают.)
- Построение древовидной структуры изисходный код JSON или XML для передачи в интерфейс, которому необходимо дерево.(Это не сериализация, потому что форма - это объекты уровня языка со ссылками между ними, а не поток байтов.)
- Передача данных назад и вперед между хост-приложением и встроенным языком (например, Lua).