🗊Презентация Язык программирования D

Нажмите для полного просмотра!
Язык программирования D, слайд №1Язык программирования D, слайд №2Язык программирования D, слайд №3Язык программирования D, слайд №4Язык программирования D, слайд №5Язык программирования D, слайд №6Язык программирования D, слайд №7Язык программирования D, слайд №8Язык программирования D, слайд №9Язык программирования D, слайд №10Язык программирования D, слайд №11Язык программирования D, слайд №12Язык программирования D, слайд №13Язык программирования D, слайд №14Язык программирования D, слайд №15Язык программирования D, слайд №16Язык программирования D, слайд №17Язык программирования D, слайд №18Язык программирования D, слайд №19Язык программирования D, слайд №20Язык программирования D, слайд №21Язык программирования D, слайд №22Язык программирования D, слайд №23Язык программирования D, слайд №24Язык программирования D, слайд №25

Содержание

Вы можете ознакомиться и скачать презентацию на тему Язык программирования D. Доклад-сообщение содержит 25 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Тема: 
“Язык программирования  D”
Выполнил: студент 4 курса группы   
ИСТ 13/1 Протасов А.Э.
Руководитель: К.Т.Н. Исаева Г.Н.
Описание слайда:
Тема: “Язык программирования D” Выполнил: студент 4 курса группы ИСТ 13/1 Протасов А.Э. Руководитель: К.Т.Н. Исаева Г.Н.

Слайд 2





Введение 
	D — язык программирования общего назначения, предназначенный для прикладного и системного программирования. 
	В D собран опыт разработки десятков компиляторов для самых разнообразных языков программирования, а также попыток создания крупных проектов на этих языках. Язык D вобрал в себя лучшее из тех языков (больше всего из C++) и практично применил эти возможности.
Описание слайда:
Введение D — язык программирования общего назначения, предназначенный для прикладного и системного программирования. В D собран опыт разработки десятков компиляторов для самых разнообразных языков программирования, а также попыток создания крупных проектов на этих языках. Язык D вобрал в себя лучшее из тех языков (больше всего из C++) и практично применил эти возможности.

Слайд 3





Основные особенности D
Облегчает написание кода, который без особых усилий может быть перенесен от компилятора к компилятору, от компьютера к компьютеру, от одной операционной системы к другой;
Поддержка нескольких подходов к программированию: структурный и объектно-ориентированный, как минимум;
Лёгкость изучения языка для тех, кто имел дело с языками C и C++;
Обеспечение прямого низкоуровневого доступа к оборудованию;
Наличие контекстно-независимой грамматики;
Легкость создания интернациональных программ;
Возможность создания легковесных и самостоятельных программ
Описание слайда:
Основные особенности D Облегчает написание кода, который без особых усилий может быть перенесен от компилятора к компилятору, от компьютера к компьютеру, от одной операционной системы к другой; Поддержка нескольких подходов к программированию: структурный и объектно-ориентированный, как минимум; Лёгкость изучения языка для тех, кто имел дело с языками C и C++; Обеспечение прямого низкоуровневого доступа к оборудованию; Наличие контекстно-независимой грамматики; Легкость создания интернациональных программ; Возможность создания легковесных и самостоятельных программ

Слайд 4





Возможности, унаследованные от C/C++ 
Сохранены синтаксис и семантика языков C и C++.
Программы на D могут быть написаны с использованием функционального и объектно-ориентированного подходов.
Поддерживается модель разработки по этапам компиляция/линкование/отладка 
Обработка исключений (exception handling). 
Приведение типов в реальном времени..
D поддерживает совместимость с соглашением о вызове функций в языке C.
Перегрузка операторов. 
Использование шаблонов.
Описание слайда:
Возможности, унаследованные от C/C++ Сохранены синтаксис и семантика языков C и C++. Программы на D могут быть написаны с использованием функционального и объектно-ориентированного подходов. Поддерживается модель разработки по этапам компиляция/линкование/отладка Обработка исключений (exception handling). Приведение типов в реальном времени.. D поддерживает совместимость с соглашением о вызове функций в языке C. Перегрузка операторов. Использование шаблонов.

Слайд 5





Для кого и чего предназначен язык D
 
Для программистов, регулярно пользующихся анализаторами кода для выявления ошибок еще до компиляции;
Для людей, которые компилируют код с максимальным количеством включенных уровней предупреждений (warning levels).
 Для тех, кто решил, что обещание лёгкого объектно-ориентированного подхода к программированию в языке C++ не выполняется из-за его сложности и запутанности;
Для программистов, которых впечатляет мощь языка C++, но разочаровывает необходимость ручного управления памятью и ловля багов, связанных с указателями;
Для проектов, нуждающихся во встроенных средствах тестирования и верификации;
Для команд разработчиков, разрабатывающих приложения, исходные тексты которых содержат миллионы строк кода;
Для программистов, которые считают, что язык программирования должен поддерживать достаточное количество возможностей для абстрактной работы с указателями;
Для математических программистов. Язык D поддерживает работу с комплексными числами и операторами определения NaN’ов (not a number) и бесконечностей (infinity). Они были добавлены в стандарт C99, но не в C++.
Описание слайда:
Для кого и чего предназначен язык D Для программистов, регулярно пользующихся анализаторами кода для выявления ошибок еще до компиляции; Для людей, которые компилируют код с максимальным количеством включенных уровней предупреждений (warning levels). Для тех, кто решил, что обещание лёгкого объектно-ориентированного подхода к программированию в языке C++ не выполняется из-за его сложности и запутанности; Для программистов, которых впечатляет мощь языка C++, но разочаровывает необходимость ручного управления памятью и ловля багов, связанных с указателями; Для проектов, нуждающихся во встроенных средствах тестирования и верификации; Для команд разработчиков, разрабатывающих приложения, исходные тексты которых содержат миллионы строк кода; Для программистов, которые считают, что язык программирования должен поддерживать достаточное количество возможностей для абстрактной работы с указателями; Для математических программистов. Язык D поддерживает работу с комплексными числами и операторами определения NaN’ов (not a number) и бесконечностей (infinity). Они были добавлены в стандарт C99, но не в C++.

Слайд 6





Введение 
	D — язык программирования общего назначения, предназначенный для прикладного и системного программирования. 
	В D собран опыт разработки десятков компиляторов для самых разнообразных языков программирования, а также попыток создания крупных проектов на этих языках. Язык D вобрал в себя лучшее из тех языков (больше всего из C++) и практично применил эти возможности.
Описание слайда:
Введение D — язык программирования общего назначения, предназначенный для прикладного и системного программирования. В D собран опыт разработки десятков компиляторов для самых разнообразных языков программирования, а также попыток создания крупных проектов на этих языках. Язык D вобрал в себя лучшее из тех языков (больше всего из C++) и практично применил эти возможности.

Слайд 7





Для кого и чего D не предназначен
Язык D не предназначен для уже существующих программ (однако, D поддерживает существующие API для языка C).
Для очень маленьких программ.
В качестве первого языка программирования. 
Для борцов за чистоту языка.
Описание слайда:
Для кого и чего D не предназначен Язык D не предназначен для уже существующих программ (однако, D поддерживает существующие API для языка C). Для очень маленьких программ. В качестве первого языка программирования. Для борцов за чистоту языка.

Слайд 8





Особенности языка D 
Классы
	Объектно-ориентированная природа языка D происходит от классов. Модель наследования не поддерживает наследования от нескольких классов, зато расширяется за счет использования интерфейсов. 
Перегрузка операторов
	Классы могут быть приспособлены для работы с уже существующими операторами. Благодаря перегрузке операторов можно создавать новые типы данных. Например, можно создать тип данных для работы с большими числами.
Описание слайда:
Особенности языка D Классы Объектно-ориентированная природа языка D происходит от классов. Модель наследования не поддерживает наследования от нескольких классов, зато расширяется за счет использования интерфейсов. Перегрузка операторов Классы могут быть приспособлены для работы с уже существующими операторами. Благодаря перегрузке операторов можно создавать новые типы данных. Например, можно создать тип данных для работы с большими числами.

Слайд 9





Особенности языка D 
Модули
	Файлы исходного кода взаимно однозначно соответствуют модулям. Вместо включения (#include) файлов исходного кода достаточно импортировать модуль. В этом случае нет необходимости беспокоиться о том, что один и тот же модуль будет импортирован несколько раз, а, значит, и нет необходимости обрамлять код в заголовочных файлах с использованием макросов препроцессора #ifndef/#endif или #pragma once.
Описание слайда:
Особенности языка D Модули Файлы исходного кода взаимно однозначно соответствуют модулям. Вместо включения (#include) файлов исходного кода достаточно импортировать модуль. В этом случае нет необходимости беспокоиться о том, что один и тот же модуль будет импортирован несколько раз, а, значит, и нет необходимости обрамлять код в заголовочных файлах с использованием макросов препроцессора #ifndef/#endif или #pragma once.

Слайд 10





Особенности языка D 
Объявление против описания
	C++ обычно требует, чтобы функции и классы были объявлены дважды — объявление происходит в заголовочных файлах (*.h), а описание происходит в файлах исходного кода (*.cpp). Это утомительный и подверженный ошибкам процесс. Очевидно, что программисту достаточно объявить функцию или класс лишь однажды, а компилятор должен впоследствии извлечь информацию об объявлении и сделать ее доступной для импортирования. Именно так работает язык программирования D, например:
Описание слайда:
Особенности языка D Объявление против описания C++ обычно требует, чтобы функции и классы были объявлены дважды — объявление происходит в заголовочных файлах (*.h), а описание происходит в файлах исходного кода (*.cpp). Это утомительный и подверженный ошибкам процесс. Очевидно, что программисту достаточно объявить функцию или класс лишь однажды, а компилятор должен впоследствии извлечь информацию об объявлении и сделать ее доступной для импортирования. Именно так работает язык программирования D, например:

Слайд 11





Особенности языка D 
Объявление против описания
	И более нет необходимости отдельного описания функций-членов, атрибутов и спецификаций внешних объявлений (extern), как в языке C++:
Описание слайда:
Особенности языка D Объявление против описания И более нет необходимости отдельного описания функций-членов, атрибутов и спецификаций внешних объявлений (extern), как в языке C++:

Слайд 12





Особенности языка D 
Объявление против описания
	Заметка: Конечно же, в C++ тривиальные функции вроде { return 7; } тоже описаны внутри класса, но более сложные должны быть описаны отдельно. Вдобавок, если нужны опережающие ссылки (ссылки на класс или функцию, которые объявлены, но ещё не определены), то для этих объектов нужны прототипы (prototype). Следующий код не будет работать в C++:
Описание слайда:
Особенности языка D Объявление против описания Заметка: Конечно же, в C++ тривиальные функции вроде { return 7; } тоже описаны внутри класса, но более сложные должны быть описаны отдельно. Вдобавок, если нужны опережающие ссылки (ссылки на класс или функцию, которые объявлены, но ещё не определены), то для этих объектов нужны прототипы (prototype). Следующий код не будет работать в C++:

Слайд 13





Особенности языка D 
Шаблоны
	Шаблоны в языке D предлагают простой путь поддержки обобщенного программирования, в то же время обеспечивая использование частичной специализации.
Ассоциативные массивы
	Ассоциативные массивы — это массивы, в качестве индекса в которых можно использовать любой тип данных, а не только целые числа. По существу, ассоциативные массивы являются хеш-таблицами, которые облегчают создание быстрых, эффективных и устойчивых к ошибкам таблиц символов.
Описание слайда:
Особенности языка D Шаблоны Шаблоны в языке D предлагают простой путь поддержки обобщенного программирования, в то же время обеспечивая использование частичной специализации. Ассоциативные массивы Ассоциативные массивы — это массивы, в качестве индекса в которых можно использовать любой тип данных, а не только целые числа. По существу, ассоциативные массивы являются хеш-таблицами, которые облегчают создание быстрых, эффективных и устойчивых к ошибкам таблиц символов.

Слайд 14





Особенности языка D 
Настоящий typedef
	В языках C и C++ оператор typedef на самом деле просто создает синоним типа данных и никакого нового типа данных не объявляется. В языке D оператор typedef объявляет новый тип данных. Таким образом, код
создает новый тип данных handle. К новому типу данных применяется проверка на соответствие типу данных, а также при перегрузке функций новый тип данных отличается от того типа данных, на основе которого он был создан. Например:
Описание слайда:
Особенности языка D Настоящий typedef В языках C и C++ оператор typedef на самом деле просто создает синоним типа данных и никакого нового типа данных не объявляется. В языке D оператор typedef объявляет новый тип данных. Таким образом, код создает новый тип данных handle. К новому типу данных применяется проверка на соответствие типу данных, а также при перегрузке функций новый тип данных отличается от того типа данных, на основе которого он был создан. Например:

Слайд 15





Особенности языка D 
	Язык D имеет поддержку обычных функций, включая глобальные функции, перегруженные функции, встраивание функций, методы классов, виртуальные методы классов, указатели на функции. Также в D реализованы:
Вложенные функции
	Функции могут быть объявлены в теле других функций, что очень полезно для ограничения области видимости вспомогательных функций.
Функциональные литералы (function literals)
	Анонимные функции могут быть встроены напрямую в выражение.
Динамические делегирования (closure)
	Встроенные функции и методы классов могут использоваться при делегировании обязанностей, что делает обобщенное программирование проще.
Спецификаторы доступа к параметрам функций: in, out и inout
	Данные спецификаторы не только делают объявления функций говорящими сами за себя, но и открывает возможности компилятора для помощи в нахождении ошибок.
	Все эти возможности D позволяют использовать больше различных программных интерфейсов, а также избавляет от необходимости использовать различные искусственные приемы, как, например IDL (Interface Definition Languages).
Описание слайда:
Особенности языка D Язык D имеет поддержку обычных функций, включая глобальные функции, перегруженные функции, встраивание функций, методы классов, виртуальные методы классов, указатели на функции. Также в D реализованы: Вложенные функции Функции могут быть объявлены в теле других функций, что очень полезно для ограничения области видимости вспомогательных функций. Функциональные литералы (function literals) Анонимные функции могут быть встроены напрямую в выражение. Динамические делегирования (closure) Встроенные функции и методы классов могут использоваться при делегировании обязанностей, что делает обобщенное программирование проще. Спецификаторы доступа к параметрам функций: in, out и inout Данные спецификаторы не только делают объявления функций говорящими сами за себя, но и открывает возможности компилятора для помощи в нахождении ошибок. Все эти возможности D позволяют использовать больше различных программных интерфейсов, а также избавляет от необходимости использовать различные искусственные приемы, как, например IDL (Interface Definition Languages).

Слайд 16





Особенности языка D 
	Массивы в языке C имеют несколько недостатков, которые приходится корректировать:
Информация о размерности массива не прилагается к массиву, поэтому должна извлекаться дополнительно и передаваться отдельно. 
Когда массив передается в функцию, на самом деле передается ссылка на него, даже когда прототип функции говорит, что должен быть передан массив. 
Размерность массивов языка C не может быть изменена. 
В языке C нельзя произвести проверку на нарушение границ массива.
Массивы объявляются с использованием оператора [ ] после названия массива. Это ведет к использованию очень неуклюжего синтаксиса при объявлении, скажем, ссылки на массив:
Описание слайда:
Особенности языка D Массивы в языке C имеют несколько недостатков, которые приходится корректировать: Информация о размерности массива не прилагается к массиву, поэтому должна извлекаться дополнительно и передаваться отдельно. Когда массив передается в функцию, на самом деле передается ссылка на него, даже когда прототип функции говорит, что должен быть передан массив. Размерность массивов языка C не может быть изменена. В языке C нельзя произвести проверку на нарушение границ массива. Массивы объявляются с использованием оператора [ ] после названия массива. Это ведет к использованию очень неуклюжего синтаксиса при объявлении, скажем, ссылки на массив:

Слайд 17





Особенности языка D 
	В языке D оператор [ ] при объявлении массива ставится после типа данных:
Описание слайда:
Особенности языка D В языке D оператор [ ] при объявлении массива ставится после типа данных:

Слайд 18





Особенности языка D 
Автоматическое управление памятью
	Выделение памяти в языке D полностью контролируется методикой сбора мусора. Опыт показывает, что большинство сложных возможностей языка C++ требуют последующего освобождения памяти. Методика сбора мусора делает жизнь проще.
Явное управление памятью
	Несмотря на то, что язык D поддерживает автоматический сбор мусора, операторы new и delete могут быть перегружены для определенных классов.
RAII
	RAII — это современная методика разработки для управления распределением и освобождением ресурсов. Язык D поддерживает методику RAII в контролируемой и предсказуемой манере, независимой от цикла сбора мусора.
Описание слайда:
Особенности языка D Автоматическое управление памятью Выделение памяти в языке D полностью контролируется методикой сбора мусора. Опыт показывает, что большинство сложных возможностей языка C++ требуют последующего освобождения памяти. Методика сбора мусора делает жизнь проще. Явное управление памятью Несмотря на то, что язык D поддерживает автоматический сбор мусора, операторы new и delete могут быть перегружены для определенных классов. RAII RAII — это современная методика разработки для управления распределением и освобождением ресурсов. Язык D поддерживает методику RAII в контролируемой и предсказуемой манере, независимой от цикла сбора мусора.

Слайд 19





Особенности языка D 
Легковесные составные типы данных
	Язык D поддерживает простые структуры в стиле языка C не только для совместимости с этим языком, но и потому что они очень полезны в тех случаях, когда возможностей классов слишком много.
Встроенный ассемблер
	Драйверы устройств, высокопроизводительные системные приложения, а также встраиваемые системы (embedded systems) требуют углубления до уровня команд ассемблера. Программирование на языке D не требует использования ассемблера, но он реализован и является частью языка.
Описание слайда:
Особенности языка D Легковесные составные типы данных Язык D поддерживает простые структуры в стиле языка C не только для совместимости с этим языком, но и потому что они очень полезны в тех случаях, когда возможностей классов слишком много. Встроенный ассемблер Драйверы устройств, высокопроизводительные системные приложения, а также встраиваемые системы (embedded systems) требуют углубления до уровня команд ассемблера. Программирование на языке D не требует использования ассемблера, но он реализован и является частью языка.

Слайд 20





Особенности языка D 
	Современный язык программирования должен сделать все, чтобы помочь программисту отловить ошибки в коде. Эта помощь может проявляться по-разному: от обеспечения лёгкости использования устойчивых методик до эвристического поиска компилятором явно некорректного кода и проверок во время выполнения программы.
Отладочный код
	Теперь отладка является частью языка. Отладочный код может быть включен или отключен перед компилированием, при этом не требуется использовать макросы или команды препроцессора. 
Обработка исключений
	Модель try-catch-finally предпочтительнее, чем просто try-catch, потому что не требует создания временных (dummy) объектов, деструктор которого будет выполнять то, что может сделать finally.
Синхронизация
	Многопоточное программирование становится всё более распространенным, поэтому в языке D реализованы базовые возможности для создания многопоточных приложений.
Описание слайда:
Особенности языка D Современный язык программирования должен сделать все, чтобы помочь программисту отловить ошибки в коде. Эта помощь может проявляться по-разному: от обеспечения лёгкости использования устойчивых методик до эвристического поиска компилятором явно некорректного кода и проверок во время выполнения программы. Отладочный код Теперь отладка является частью языка. Отладочный код может быть включен или отключен перед компилированием, при этом не требуется использовать макросы или команды препроцессора. Обработка исключений Модель try-catch-finally предпочтительнее, чем просто try-catch, потому что не требует создания временных (dummy) объектов, деструктор которого будет выполнять то, что может сделать finally. Синхронизация Многопоточное программирование становится всё более распространенным, поэтому в языке D реализованы базовые возможности для создания многопоточных приложений.

Слайд 21





Особенности языка D 
Устойчивые к ошибкам методики
Динамические массивы вместо указателей;
Переменные-ссылки вместо указателей;
Ссылки на объекты вместо указателей;
Сбор мусора вместо явного управления памятью;
Встроенные возможности синхронизации потоков;
Встраиваемые функции вместо макросов;
Уменьшение необходимости использовать указатели;
Явные размеры целого типа данных;
Отсутствие неопределенности, касающейся наличия знака у символьного типа;
Отсутствие необходимости повторного объявления;
Описание слайда:
Особенности языка D Устойчивые к ошибкам методики Динамические массивы вместо указателей; Переменные-ссылки вместо указателей; Ссылки на объекты вместо указателей; Сбор мусора вместо явного управления памятью; Встроенные возможности синхронизации потоков; Встраиваемые функции вместо макросов; Уменьшение необходимости использовать указатели; Явные размеры целого типа данных; Отсутствие неопределенности, касающейся наличия знака у символьного типа; Отсутствие необходимости повторного объявления;

Слайд 22





Особенности языка D 
Проверки во время компиляции
Более строгая проверка на соответствие типа данных;
Никаких пустых условий в цикле for;
Присвоения не возвращают булевого значения;
Проверка использования устаревших API;
Описание слайда:
Особенности языка D Проверки во время компиляции Более строгая проверка на соответствие типа данных; Никаких пустых условий в цикле for; Присвоения не возвращают булевого значения; Проверка использования устаревших API;

Слайд 23





Особенности языка D 
Приоритеты операторов и правила вычисления
	Язык D сохранил операторы из языка C, а также их приоритеты и правила вычисления. 
Прямой доступ к API языка C
	Язык D не только имеет типы данных, соответствующие типам данных языка C, но и обеспечивает прямой доступ к функциям языка C. 
Поддержка всех типов данных языка C
	Это делает возможным взаимодействие с API языка C или с кодом существующей библиотеки языка C. 
Обработка исключений операционной системы
	Механизм обработки исключений языка D совместим с механизмом обработки исключений операционной системы.
Использование существующих инструментариев
	Код на языке D преобразуется в объектный файл стандартного формата.
Описание слайда:
Особенности языка D Приоритеты операторов и правила вычисления Язык D сохранил операторы из языка C, а также их приоритеты и правила вычисления. Прямой доступ к API языка C Язык D не только имеет типы данных, соответствующие типам данных языка C, но и обеспечивает прямой доступ к функциям языка C. Поддержка всех типов данных языка C Это делает возможным взаимодействие с API языка C или с кодом существующей библиотеки языка C. Обработка исключений операционной системы Механизм обработки исключений языка D совместим с механизмом обработки исключений операционной системы. Использование существующих инструментариев Код на языке D преобразуется в объектный файл стандартного формата.

Слайд 24





Список использованной литературы:
https://ru.wikibooks.org/wiki/Язык_программирования_D
Язык Программирования D. Андрей Александреску. Санкт-Петербург – Москва 2012г.
Описание слайда:
Список использованной литературы: https://ru.wikibooks.org/wiki/Язык_программирования_D Язык Программирования D. Андрей Александреску. Санкт-Петербург – Москва 2012г.

Слайд 25





Спасибо за внимание!!!
Описание слайда:
Спасибо за внимание!!!



Похожие презентации
Mypresentation.ru
Загрузить презентацию