Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лексические соглашения

Читайте также:
  1. БЕЛОВЕЖСКИЕ СОГЛАШЕНИЯ.
  2. ВИДЫ ТРАНСФОРМАЦИЙ. ЛЕКСИЧЕСКИЕ ТРАНСФОРМАЦИИ.
  3. Графические соглашения
  4. Контроль за выполнением коллективного договора, соглашения.
  5. Лексические и морфологические архаизмы
  6. Лексические и фразеологические нормы
  7. Лексические нормы
  8. Лексические нормы
  9. Лексические трансформации
  10. Лексические трансформации (Лтр).
  11. Лекция 1. Введение в курс. Лексические аспекты перевода

Ввод и вывод

Строки

 

Класс STRING описывает символьные строки. Он имеет специальный статус, поскольку нотация допускает манифестные строковые константы, обозначающие экземпляры STRING .

Строковая константа записывается в двойных кавычках, например,

 

"ABcd Ef ~*_ 01"

 

 

Символ двойных кавычек должны предваряться знаком % , если он появляется как один из символов строки.

Неконстантные строки также являются экземплярами класса STRING , чья процедура создания make принимает в качестве аргумента ожидаемую начальную длину строки, так что

 

text1, text2: STRING; n: INTEGER;

...

create text1.make (n)

 

 

динамически размещает строку text1 , резервируя пространство для n символов. Заметим, что n - только исходный размер, не максимальный. Любая строка может увеличиваться и сжиматься до произвольного размера.

На экземплярах STRING доступны многочисленные операции: сцепление, выделение символов и подстрок, сравнение и т.д. (Они могут изменять размер строки, автоматически запуская повторное размещение, если размер строки становится больше текущего.)

Присваивание строк означает разделение (sharing): после text2 := text1 , любая модификация text1 модифицирует text2 , и наоборот. Для получения копии строки, а не копии ссылки, используется клонирование text2 := clone (text1) .

Константную строку можно объявить как атрибут:

 

message: STRING is "Your message here"

 

 

Два класса библиотеки KERNEL обеспечивают основные средства ввода и вывода: FILE и STD_FILES .

Среди операций, определенных для объекта f типа FILE , есть следующие:

 

create f.make ("name") -- Связывает f с файлом по имени name.

 

f.open_write -- Открытие f для записи

 

f.open_read -- Открытие f для чтения

 

f.put_string ("A_STRING") -- Запись данной строки в файл f

 

 

Операции ввода-вывода стандартных файлов ввода, вывода и ошибок, можно наследовать из класса STD_FILES , определяющего компоненты input , output и error . В качестве альтернативы можно использовать предопределенное значение io , как в io.put_string ("ABC") , обходя наследование.

 

 

Идентификатор - это последовательность из символа подчеркивания, буквенных и цифровых символов, начинающаяся с буквы. Нет ограничений на длину идентификатора, что позволяет сделать ясными имена компонентов и классов.

Регистр в идентификаторах не учитывается, так что Hi , hi , HI и hI - все означают один и тот же идентификатор. Было бы опасным позволять двум идентификаторам, различающимся только одним символом, скажем Structure и structure , обозначать различные элементы. Лучше попросить разработчиков включить воображение, чем рисковать возникновением ошибок.



Нотация включает набор точных стандартных соглашений по стилю (см. лекцию 26 курса "Основы объектно-ориентированного проектирования"): имена классов (INTEGER , POINT ...) и формальные родовые параметры (G в LIST [G] ) записываются в верхнем регистре; предопределенные сущности и выражения (Result , Current ...) и константные атрибуты (Pi ) начинаются с буквы верхнего регистра и продолжаются в нижнем регистре. Все другие идентификаторы (неконстантные атрибуты, формальные аргументы программ, локальные сущности) - в нижнем регистре. Хотя компиляторы не проверяют эти соглашения, не являющиеся частью спецификации, они важны для удобочитаемости текстов программных продуктов и последовательно применяются в библиотеках и текстах этой книги.

 

<== предыдущая лекция | следующая лекция ==>
Нестрогие булевы операторы. [x]. a and then b ложно, если a ложно, иначе имеет значение b | Многоугольники и прямоугольники

Дата добавления: 2014-01-07; Просмотров: 90; Нарушение авторских прав?;


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:



studopedia.su - Студопедия (2013 - 2018) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление ip: 54.167.112.42
Генерация страницы за: 0.002 сек.