ну не... по идее UB должно отлавливаться как ошибка(алгоритм не может быть интерпретирован языком), в отличии от realization depended...
а в каком месте в описании Оберона (или КП) есть UB? вроде как то я их не видел?
Ни в одном из описаний, насколько я помню, четко UB не прописано (видимо на символах экономили, чтобы в 16 страниц влезло), но они там очевидно есть. Ну, например там умалчивается что будет если поделить на ноль. Это явное UB. Ну и что будет после разименовывания нулевого указателя.
с чего бы это.. я так понимаю , что если что то не прописано, значит это realization depended....
правда есть поганенький вопрос в сторону оберонов- а много ли приходится доопределять реализацией в Оберонах, и как это может повлиять на портабельность программ..
Это не является implementation-defined behavior просто потому, что implementation-defined behavior подразумевает что оно случается когда программа валидная, то есть будет точно хорошо, причем всегда одним и тем же способом, а как именно будет - см. доку на реализацию.
В случае деления на ноль - хорошо не будет :-) Да и в случае попытки пролезть по нулевому указателю тоже хорошо не будет.
Причем в случаях unspecified behavior, implementation-defined behavior это все должно быть явно указано в доке на язык а не реализацию.
Так что, если оставаться в терминах всех этих 4х behavior'ов, то остается только UB.