Это из мира программирования под микроконтроллеры (в основном, хотя и на PC такой код есть).
Итак, рассмотрим какой-нибудь типичный микроконтроллер, ну например
msp430g2452. У него ОЗУ (RAM) 256
байт, замечу что в эта RAM на все - и на стек тоже, и на глобальные переменные (которые можно менять) и на кучу. На все. При этом у этого микроконтроллера аж целых 8 Кб Flash (1024*8 = МНОГО!). Flash во время работы писать нельзя (точнее можно, но это о-очень медленно и flash от этого быстро сдохнет), зато можно читать на той же скорости что и RAM, также у микроконтроллера плоское адресное пространство - и RAM и этот Flash лежат в едином адресном пространстве (и кто где кончается и начинается определить, по сути нельзя, не попытавшись туда что-то записать).
Собственно программа пишется во Flash и прямо оттуда исполняется, в ОЗУ она не грузится.
Очень часто возникает необходимость иметь довольно большие (сотни байт) массивы и другие структуры данных содержимое которых полностью известно на этапе компиляции (простейший пример с которым я сталкивался лично - массив коэффициентов для FIR-фильтра (FIR == КИХ)) и во время исполнение программы их модификация не требуется. В RAM это все пихать глупо, да и не поместится. Им самое место во Flash'e.
Внимание вопрос - как такие структуры данных оформить в Обероне?
В Си и С++ с этим проблем нет (я знаю как), а как в Обероне - не знаю.