Хелпикс

Главная

Контакты

Случайная статья





Важным является то, что символ «#» используется в препроцессоре и не может выступать в качестве части какой-либо лексемы.



 

Общая характеристика языка C.

Введение

Язык программирования C принадлежит к группе процедурных языков программирования. Он был разработан сотрудниками компании Bell Labs Кеном Томпсоном и Денисом Ритчи в период с 1969-1973 гг. Разработка этого языка программирования берёт своё начало у языка программирования B, благодаря чему он и получил своё название – C.

Стоит отметить, что B был разработан для реализации рекурсивных, машинно-независимых приложений. К таковым относились операционные системы (ОС) и языки программирования. Его важной особенностью и, в то же время, большим недостатком является отсутствие системы типов. Единственный тип данных, который был в нём реализован представляет собой естественный формат машинного словабазовой машины. Это слово могло обрабатываться либо как целое число, либо как адрес памяти в зависимости от контекста.

Основной идеей, заложенной в C, являлось то, что разработчики стремились к упрощению процесса компиляции программы, путём использования однопроходного механизма. Т.е. предполагалось, что по завершению компиляции каждой элементарной составляющей программного кода должен соответствовать минимальный набор машинных команд, в то время как использование базовых элементов языка программирования не должно задействовать библиотеку времени исполнения. Так как однопроходной механизм компиляции программы не предполагает возвращения к уже обработанному тексту, использованию любой переменной или функции должно предшествовать её объявление.

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

Изначально C был разработан для реализации ОС UNIX, однако возможности языка позволили расширить сферу его применения. Так он нашёл применение в проектах, для которых более свойственным было использование ассемблера, в том числе в ОС и разработке пакетов прикладных программ (ППП). Обосновано это как раз тем, что конструкции языка достаточно близко сопоставляются с машинными инструкциями.

Основная цель создания языка программирования C заключалась в попытке сделать написание больших программ более простым, с учётом минимизации количества ошибок в соответствии с правилами процедурного программирования, предполагая то, что компилятор не будет добавлять лишних накладных расходов на итоговый программный код. Последнее считается прерогативой языков программирования высокого уровня. С этой позиции, C имеет следующие особенности:

· простая языковая база, которая предполагает размещение разных функциональных возможностей в отдельные библиотеки;

· ориентирование на процедурное программирование;

· использование препроцессора;

· минимизация количества ключевых слов;

· наличие системы типов и возможность использования типов данных, определяемых пользователем;

· наличие указателей на функции и статических переменных;

· использование разных областей видимости;

· наличие указателей, функций и статических переменных.

Относительно языка B в C отсутствуют:

· сопрограммы;

· вложенные функции;

· возможность прямого возвращения нескольких значений из функции;

· средства автоматического управления памятью;

· встроенные средства объектно-ориентированного программирования (ООП);

· средства функционального программирования.

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

После завершения разработки язык был хорошо принят разработчиками программного обеспечения (ПО), так как он позволял создавать компиляторы под разные платформы, иметь довольно точное представление о том, как работает программный код, и более эффективному исполнению программ в сравнении с аналогичными программами, написанными на других языках программирования высокого уровня.

Синтаксис и семантика

Алфавит языка программирования C включает в себя:

· символы латинского алфавита;

Ряд языков программирования предполагает то, что регистр, который используется при составлении идентификаторов и указании ключевых слов, не имеет значения и переменные написанные разным регистром значат одно и то же. В C это утверждение не будет верным. Так, например, идентификаторы myApp и myapp будут иметь разное значение, и, если в программном коде первый идентификатор является объявленной переменной, а второй нет – будет выведено сообщение о синтаксической ошибке.

Таким образом, состав используемого алфавита имеет следующий вид: a..z, A..Z.

· цифры;

· специальные символы.

К специальным символам относятся следующие: «,», «;», «.», «+», «-», «*», «/», «\», «^», «=», «&», «~», «!», «>», «<», «(», «)», «{», «}», «[», «]», «%», «|», «’», «”», «?», «:», «_», «#».

Важным является то, что символ «#» используется в препроцессоре и не может выступать в качестве части какой-либо лексемы.

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

Лексемы входят в состав выражений. Выражения, в свою очередь, составляют инструкции и операторы.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.