пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Языки программирования С и С++. История создания и развития языка. Стандарты языка. Структура языка: алфавит, виды лексем. Особенности компиляции в С++. Директивы препроцессора #include, #define, #undef, #pragma, #error.

 

Язык С - Язык программирования, разработанный, как инструмент для программистов практиков в 1972 году на основе языка B. Представляет собой процедурный язык(как и Паскаль). На нем до сих пор пишутся unix-подобные ОС.  Общая характеристика: Включает элементы как выского уровня(структуры данных и операторы структурного программирования, большой набор операций, указатели  и функции) так и низкого(аппаратные типы данных, логические операции с битами, сдвиги, работа с адресами); Имеет эффективный, экономный и переносимый компилятор; Развитые библиотеки(как стандартная, так и дополнительные)

1976 г. – перенос Unix на Interdata 8/32 (затем и на другие платформы)

1978 г. – первая книга

1987 г. – стандарт ANSI C

1999 г. – текущий стандарт ISO 9899:1999

Язык С++ является самостоятельным языком программирования, разработанным на основе С. Особенностью языка С++ является включение в язык объектно-ориентированного подхода и введение дополнительных упрощающих синтаксических конструкций. На этот язык существует ANSI стандарт, позволяющий без проблем использовать и компилировать программы, написанные на этом языке при помощи разных компиляторов. Еще преимущества: Эффективность генерируемого кода, универсальность(возможность гибкой реализации требуемых алгоритмов), удобство(структурированность без лишних рамок).Недостатки: Уровнем “ниже”, чем Паскаль, неудобен для чтения, слабое структурирование(неупорядоченая программа)

1998 г. – стандарт ISO 14882:1998

2003 г. – стандарт ISO 14882:2003

2005 г. – стандарт C++/CLI

2011 г. – текущий стандарт C++11

Структура языка:
            #Директивы процессора
            ….
            #Директивы процессора
            функции()
                        операторы

            void main() //с нее начинается программа
                        операторы
                                   описания

                                   присваивания
                                   функция
                                   пустой оператор
                                               составной
                                               выбора
                                               циклов
                                               перехода
Алфавит языка включает в себя: Прописные и строчные латинские буквы и знак подчеркивания; арабские цифры; спец.знаки; пробельные символы. Коментарии помещяются между /* и  */, или с втрочке после //.

Лексемы: Индентификаторы - имена объектов С-программ.  Ключевые слова - это слова, которые имеют спец. назначения для компилятора. Их нельзя использовать в качестве индентификаторов.Знаки операций - один или несколько символов, определяющих действие над операндами(бывают унарные/бинарные/тернарный). Константы - это неизменяемые величины(компилятор выделяет их как лексемы и относит к нужному типу). Разделители - скобки, точка,  запятая, пробельные символы.

Особенности компиляции:

https://lh3.googleusercontent.com/Zf9jptjCKdXZg_qo5zPA4sTq3scUIkwwXV8A0n2K47yBb_Pv6ea6NyKvsa7uL-vbQAWCJX6EFsae_MRikmI7XipwpgWRNpZmhUDprASkN25XCyM7OTfQky0W_GU

Задача препроцессора – преобразование текста программы до ее компиляции. Правила препроцессорной обработки определяет программист с помощью директив препроцессора.

Директивы(С примерами): #define ZERO 0.0  -  замена ZERO на 0.0 (Или создание макросов). Так же используется для “склеивания слов” с помощью ## между ними(#define MACRO(x,y) x##y.

#undef ZERO- директива отмены define

#include <iostream.h>-  директива добавления библиотек.(В данном случае iostream)

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

#pragma — действие, зависящее от конкретной реализации компилятора. Это не совсем директива препроцессора в прямом смысле термина.Директива argused должна стоять перед функцией. Она используется для устранения предупреждений, если аргумент функции, перед которой стоит #pragma, не используется в теле функции. Директива exit определяет одну или несколько функций, вызываемых при завершении программы. Директива startup определяет одну или несколько функций, вызываемых при запуске программы.

#error - директива позволяет выдать сообщение с ошибкой.

 

33.           


22.01.2015; 18:46
хиты: 1309
рейтинг:0
Точные науки
информатика
Языки программирования
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь