лекция 4 (1161099), страница 2
Текст из файла (страница 2)
Открытые стандарты определяют функционирование только правильных программ. Они не специфицируют поведение всех программ. Они описывают поведение только некоторых программ на соответствующем ЯП.
Пример:
f(i++, a[i]) - правильная с точки зрения описания Си функция содержит побочный эффект. Но результат исполнения зависит от конкретной реализации(зависит от порядка вычисления выражений ). Открытые стандарты не описывают поведение при неправильной программе.
Закрытые стандарты полностью определяют поведение, в том числе и выдачу ошибок.
Из рассматриваемых языков закрытый стандарт имеет язык Ада.
Открытый стандарт неизбежно появляется при попытке объединить несколько различных реализаций ЯП.(Fortran, C++). Все стандарты не разрабатываются как открытые, т.к. сложно предугадать что же будет наилучшим.
3. Опережающие и по факту.
Опережающие- сначала стандарт, потом язык.
Самые успешные стандарты ЯП - по факту.
И почти все по факту - открытые стандарты.(Но стандарт Паскаля является закрытым)
Самый яркий пример опережающего стандарта - стандарт языка Ада.
Понятие атрибутов данных
Для всех данных являются наиболее важные следующие 6 основных атрибутов:
1. Имя;
2. Тип;
3. Значения;
4. Адрес (местоположение);
5. Время жизни;
6. Область действия.
Они в принципе не меняются при переходе от одного яп к другому.
6