Строк программы, исключая математическое обеспечение

Язык С
Строк программы, исключая математическое обеспечение Является учебным введением в центральную часть языка “C” Hачинаем. Единственный способ освоить новый язык Оператор FOR Набор полезных программ Подсчет символов Подсчет слов Функции Аргументы - вызов по значению Область действия: внешние переменные Резюме Константы Описания Преобразование типов До 9 и буквы от а до F Операции и выражения присваивания Старшинство и порядок вычисления Операторы и блоки Переключатель Цикл DO - WHILE Оператор CONTINUE Основные сведения Функции, возвращающие нецелые значения Еще об аргументах функций Правила, определяющие область действия Статические переменные Блочная структура Рекурсия Указатели и адреса Указатели и массивы Адресная арифметика Указатели символов и функции Указатели - не целые До 12, а не от 0 до 11. Так как за экономию памяти у нас пока не награждают, такой способ проще, чем подгонка индек-сов Инициализация массивов указателей Указатели на функции Структуры Структуры и функции Указатели на структуры Мы продемонстрируем, как правильно выполнить эту задачу Поля Определение типа Обращение к стандартной библиотеке Форматный вывод - функция PRINTF Форматный ввод - функция SCANF Форматное преобразование в памяти Обработка ошибок - STDERR и EXIT Обращение к системе Низкоуровневый ввод/вывод - операторы READ и WRITE Произвольный доступ - SEEK и LSEEK Пример - распечатка справочников Пример - распределитель памяти Константы Синтаксическая нотация Преобразования Первичные выражения Унарные операции Аддитивные операции Операция присваивания Спецификаторы типа Описание структур и объединений Инициализация TYPEDEF Оператор SWITCH Внешнее определение функции Область действия внешних идентификаторов Неявные описания Явные преобразования указателей Анахронизмы Операторы
439386
знаков
0
таблиц
0
изображений

7000 строк программы, исключая математическое обеспечение

языка ассемблера ЭВМ и управления операциями ввода-вывода,

совпадают на 95 процентов.

Программистам, знакомым с другими языками, для сравне-

ния и противопоставления может оказаться полезным упоминание

нескольких исторических, технических и философских аспектов

“C”.

Многие из наиболее важных идей “C” происходят от гораз-

до более старого, но все еще вполне жизненного языка BCPL ,

разработанного Мартином Ричардсом. Косвенно язык BCPL оказал

влияние на “C” через язык “B”, написанный Кеном Томпсоном в

1970 году для первой операционной системы “UNIX” на ЭВМ

PDP-7.

Хотя язык “C” имеет несколько общих с BCPL характерных

особенностей, он никоим образом не является диалектом пос-

леднего. И BCPL и “B” - “безтипные” языки; единственным ви-

дом данных для них являются машинное слово, а доступ к дру-

гим объектам реализуется специальными операторами или обра-

щением к функциям. В языке “C” объектами основных типов дан-

ных являются символы, целые числа нескольких размеров и чис-

ла с плавающей точкой. Кроме того, имеется иерархия произ-

водных типов данных, создаваемых указателями, массивами,

структурами, объединениями и функциями.


·     9 -

Язык “C” включает основные конструкции потока управле-

ния, требуемые для хорошо структуированных программ: группи-

рование операторов, принятие решений (IF), циклы с проверкой

завершения в начале (WHILE, FOR) или в конце (DO) и выбор

одного из множества возможных вариантов (SWITCH). (Все эти

возможности обеспечивались и в BCPL, хотя и при несколько

отличном синтаксисе; этот язык предчувствовал наступившую

через несколько лет моду на структурное программирование).

В языке “C” имеются указатели и возможность адресной

арифметики. Аргументы передаются функциям посредством копи-

рования значения аргумента , и вызванная функция не может

изменить фактический аргумент в вызывающей программе. Если

желательно добиться “вызова по ссылке”, можно неявно пере-

дать указатель, и функция сможет изменить объект, на который

этот указатель указывает. Имена массивов передаются указани-

ем начала массивов, так что аргументы типа массивов эффек-

тивно вызываются по ссылке.

К любой функции можно обращаться рекурсивно, и ее ло-

кальные переменные обычно “автоматические”, т.е. Создаются

заново при каждом обращении. Описание одной функции не может

содержаться внутри другой, но переменные могут описываться в

соответствии с обычной блочной структурой. Функции в “C” -

программе могут транслироваться отдельно. переменные по от-

ношению к функции могут быть внутренними, внешними, но из-

вестными только в пределах одного исходного файла, или пол-

ностью глобальными. Внутренние переменные могут быть автома-

тическими или статическими. Автоматические переменные для

большей эффективности можно помещать в регистры, но объявле-

ние регистра является только указанием для компилятора и ни-

как не связано с конкретными машинными регистрами.

Язык “C” не является языком со строгими типами в смысле

паскаля или алгола 68. Он сравнительно снисходителен к пре-

образованию данных, хотя и не будет автоматически преобразо-

вывать типы данных с буйной непринужденностью языка PL/1.

Существующие компиляторы не предусматривают никакой проверки

во время выполнения программы индексов массивов, типов аргу-

ментов и т.д.

В тех ситуациях, когда желательна строгая проверка ти-

пов, используется специальная версия компилятора. Эта прог-

рамма называется LINT очевидно потому, она выбирает кусочки

пуха из вашей программы. Программа LINT не генерирует машин-

ного кода, а делает очень строгую проверку всех тех сторон

программы, которые можно проконтролировать во время компиля-

ции и загрузки. Она определяет несоответствие типов, несов-

местимость аргументов, неиспользованные или очевидным обра-

зом неинициализированные переменные, потенциальные трудности

переносимости и т.д. Для программ,которые благополучно про-

ходят через LINT, гарантируется отсутствие ошибок типа при-

мерно с той же полнотой, как и для программ, написанных,

например, на АЛГОЛЕ-68. Другие возможности программы LINT

будут отмечены, когда представится соответствующий случай.


·     10 -

Наконец, язык “C”, подобно любому другому языку, имеет

свои недостатки. Некоторые операции имеют неудачное старшин-

ство; некоторые разделы синтаксиса могли бы быть лучше; су-

шествует несколько версий языка, отличающихся небольшими де-

талями. Тем не менее язык “C” зарекомендовал себя как исклю-

чительно эффективный и выразительный язык для широкого раз-

нообразия применений программирования.

Содержание книги организовано следующим образом. Глава


Информация о работе «Язык С»
Раздел: Информатика, программирование
Количество знаков с пробелами: 439386
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
48443
0
0

... основаниям. При этом философская абстракция языка оказывается неразрывно связана с основными темами и движениями философии в целом. Более конкретно, на ранние стадии традиционно рассматриваемого в рамках АФ анализа обыденного языка глубокое влияние оказала философия Дж. Э. Мура, особенно его учение о здравом смысле, согласно которому такие понятия, как «человек», «мир», «я», «внешний мир», « ...

Скачать
43709
0
0

... и других странах СНГ, а также облегчение доступа к русской и мировой культуре и науке. Таким образом, судя по данным наших исследований, востребованность русского языка осталась в республике достаточно высокой. Многие представители современной молдавской молодежи продолжают, как их отцы и деды, тянуться к русской культуре, научным и техническим достижениям России. Русский язык остается языком ...

Скачать
39778
0
1

... рисуночное словесно-слоговое письмо). Памятники среднеэламского периода (14—12 вв. до н.э.) выполнены аккадской клинописью. Памятники новоэламского периода относятся к 8—6 вв. до н.э. Был официальным языком в персидском государстве Ахеменидов в 6—4 вв. предполагается, что он, подвергшись влиянию древнеперсидского, сохранился до раннего средневековья. 7. Бурушаски язык Язык бурушаски ( ...

Скачать
64931
0
0

... /диалект), скифский, согдийский, среднеперсидский, таджикский, таджриши (язык/диалект), талышский, татский, хорезмийский, хотаносакский, шугнано-рушанская группа языков, ягнобский, язгулямский и др. Они относятся к индоиранской ветви индоевропейских языков. Области распространения: Иран, Афганистан, Таджикистан, некоторые районы Ирака, Турции, Пакистана, Индии, Грузии, Российской Федерации. Общее ...

0 комментариев


Наверх