juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2008-05-14 12:56 pm

dynamic vs static

Я не собираюсь вступать в эту нонешнюю дискуссию. Просто хочу заметить, что речь идёт о "гарвардской архитектуре" супротив "архитектуры фон Неймана".

В первой данные отделены от кода, и задача программиста состоит в том, чтобы состыковать, хоть и через посредников, данные и код, который их обрабатывает; вот и приходится катать всякие конфигурации, эксэмэли, ентити бинзы; всё для того, чтобы уберечь код от данных. Тогда код можно статически проверить и отлить в бронзе. Чтоб не сломался.

Во второй что данные, что код, без разницы; код - это вид данных, а данные могут на определённом уровне интерпретироваться как код, или строить код, который эти данные сынтепретирует (как, помню, была какая-то база, которая строила классы для доступа прямо при открытии таблицы: взял таблицу - вот и классы загрузились; естественно, что динамически.

Ну а так, наверное, стоит почитать, конечно: Егге устраивает разгром в столице статической типизации

[identity profile] ex-chrobin.livejournal.com 2008-05-16 07:04 am (UTC)(link)
если я ничего не путаю, гарвардская архитектура предполагает immutable code.

[identity profile] yosefk.livejournal.com 2008-05-16 07:29 am (UTC)(link)
Если он тру гарвард. Но такого никто делать не станет, потому что надо же запускать компиляторы, да и просто процессы менять, и потом это фрагментация RAM. Но есть гарвард кеш, где immutable instruction cache и отдельно data cache. Чтобы поменять код, нужно его написать во внешнюю память, а потом читать в instruction cache. Если смотреть на процессор отдельно от внешней памяти, то это гарвардская архитектура. Так она почти везде - я unified cache один раз только видел.