Направления программирования. История создания языка Си. Особенности языка, страница 2

6.Модульная обработка программ.

В языке Си компиляция и компоновка производятся раздельно. Это позволяет программисту перекомпилировать лишь часть программы, измененную в процессе разработки. Это свойство очень полезно при написании больших программ, состоящих из модулей.

7. Связь с языком Ассемблером

Допускается вставка кода на языке Ассемблер в код программы на Си. Возможно написание двух программ: одной на Си, другой на Ассемблере, с последующим объединением их на этапе компоновки. Это требует наличие двух языков, раздельного редактирования, компиляции, а также раздельной отладки. Следует также отметить, что функции Си на большинстве систем легко встроить в программы на языке Ассемблере.

8. Работа с отдельными битами.

Возможность Си по манипуляции битами, байтами и словами является стандартной, переносимой частью компилятора. Хотя некоторые компиляторы Паскаля (Borland Pascal) разрешают манипулировать с битами, эти конструкции языка не являются стандартными и, следовательно, не являются переносимыми.

9. Поддержка арифметики над указателями.

Хотя указатели реализованы и в других языках, СИ выделяется из них поддержкой арифметики над указателями.

10. Структуры данных, определяемые пользователем.

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

11. Экономия пространства.

Программы на Си не только быстры, но и очень эффективно используют память.

12. Многоплатформная разработка.

Программы, написанные на Си, являются одними из наиболее переносимых в современном компьютерном мире. Можно создать программу, которая будет работать на различных архитектурах и ОС, т.е. на различных платформах.

Недостатки языка Си

1.Слабая типизация.

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

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

Побочным эффектом в языке является незапланированное изменение переменной или других данных.

2.Отсутствие проверки во время выполнения.

Отсутствие проверки во время выполнения в Си может приводить к трудно устранимым проблемам. Например, система поддержки выполнения не предупредит, если в программе происходит нарушение границ массива.

Отсутствие проверки во время выполнения - это цена за скорость и эффективность программы.

В начале 80-ч годов в той же Bell Laboratories Бьярном Страуструпом был разработан на основе языка Си – язык Си++. Язык Си++ является расширением языка Си, поэтому программы, написанные на Си, могут обрабатываться компилятором языка Си++. Сегодня разработано несколько версий этого языка(1.хх, 2.хх, 3.хх, 4.хх). С начала 90-х годов появились компиляторы языка Си++ для ПК, например, Turbo C++ и Borland C++ компании Borland и Visual C++ фирмы Microsoft.

Для изучения Си мы будем использовать систему 1.0, которая замечательна тем, что требует всего 6 М байт жесткого диска, 640 Кбайт ОП (оперативной памяти).

п. 1. Элементы языка Си.

Элементы языка Си – это базовые константы, которые используются для написания программы:

-алфавит;

-константы;

-идентификаторы;

-ключевые слова;

-комментарии.

п.1.1.Алфавит.

а) Буквы  латинского алфавита и арабские цифры.

Компилятор Си рассматривает прописную и строчную букву, как разные символы.

б) Пробельные символы: пробел, возврат каретки, новая строка, новая страница.

в) Разделители:   .  ;    ,    ()  и т. д. для различных целей.