1 / 51

Обзор языков программирования

Обзор языков программирования. Руководитель: старший преподаватель Леонов Ю. А. Выполнила: студентка Какорина А.В. гр. 09-САПР. Язык программирования. Язык программирования — это формальная знаковая система, предназначенная для записи компьютерных программ.

stacia
Download Presentation

Обзор языков программирования

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Обзор языков программирования Руководитель: старший преподаватель Леонов Ю. А. Выполнила: студенткаКакорина А.В. гр. 09-САПР

  2. Язык программирования Язык программирования—это формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит ЭВМ (ПК) под ее управлением.

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

  4. назначение языка программирования ПК Язык программирования Программы

  5. Отличие от других языков Язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человекак компьютеру, в то время, как естественные языки используются для общения людей между собой. Можно обобщить определение «языков программирования» − это способ передачи команд, приказов, чёткого руководства к действию.

  6. Стандартизация языков программирования Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка.

  7. Организации, занимающиеся вопросами стандартизации • Американский национальный институт стандартов ANSI (American National Standards Institute); • Институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronic Engineers); • Организация международных стандартов ISO (International Organization for Standardization).

  8. Типы Данных Особая система, по которой данные организуются в программе, — это система типов языка программирования. Разработка и изучение систем типов известна под названием теория типов. Языки могут быть классифицированы как системы со статической типизацией и языки с динамической типизацией.

  9. Типы данных Статически-типизированные языки могут быть в дальнейшем подразделены на языки с обязательной декларацией, где каждая переменная и объявление функции имеет обязательное объявление типа, и языки с выводимыми типами. Иногда динамически-типизированные языки называются латентно-типизированными.

  10. Структуры данных Рис.1 Рис.2 Рис.3 Рис.4

  11. Используемые символы Современные языки программирования рассчитаны на использование ASCII. Часть таблицы ASCII:

  12. Используемые символы Ранние языки, возникшие в эпоху 6-битных символов, использовали более ограниченный набор. Например, алфавит Фортрана включает 49 символов (включая пробел): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - () . , $ ‘   Заметным исключением является язык APL, в котором используется очень много специальных символов. 

  13. классы языков программирования • функциональные; • процедурные (императивные); • стековые; • векторные; • аспектно-ориентированные; • декларативные; • динамические; • учебные; • описания интерфейсов; • объектно-ориентированные; • рефлексивные; • логические; • параллельного программирования; • скриптовые (сценарные); • эзотерические; • с русским синтаксисом; • прототипные.

  14. Основные классы языков программирования Языки программирования Объектно-ориентированные Процедурные Функциональные Логические

  15. Основные классы языков программирования • Процедурный язык программирования. Особенность таких языков программирования состоит в том, что задачи разбиваются на шаги и решаются шаг за шагом. Используя процедурный язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов. • Функциональное программированиеобъединяет разные подходы к определению процессов вычисления на основе достаточно строгих абстрактных понятий и методов символьной обработки данных.

  16. Основные классы языков программирования • Логическое программирование − парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. • Объектно-ориентированный язык программирования− язык, построенный на принципах объектно-ориентированного программирования. В основе концепции объектно-ориентированного программирования лежит понятие объекта − некой субстанции, которая объединяет в себе поля и методы.

  17. трансляторы Транслятор – обрабатывающая программа, предназначенная для преобразования исходной программы в объектный модуль. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д. Трансляция — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой. Виды трансляторов: Адресный, диалоговый, однопроходной, многопроходной, обратный, оптимизирующий, текстовый, синтаксически-ориентированный (синтаксически-управляемый).

  18. интерпретаторы Интерпретатор — программа (иногда аппаратное средство), анализирующая команды или операторы программы и тут же выполняющая их. Типы интерпретаторов: • простой интерпретатор; • интерпретатор компилирующего типа. Алгоритм работы простого интерпретатора: • прочитать инструкцию; • проанализировать инструкцию и определить соответствующие действия; • выполнить соответствующие действия; • если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.

  19. компиляторы Компилятор – программа или техническое средство, выполняющее компиляцию. Компиляция — трансляция программы на машинный язык или близкий к машинному. Виды компиляторов: Векторизующий, гибкий, диалоговый, инкрементальный, интерпретирующий (пошаговый), компилятор компиляторов, отладочный, резидентный, универсальный, самокомпилируемый.

  20. Уровни языков программирования Языки программирования Низкого уровня (языки Ассемблера) Высокого уровня Универсальные (Фортран, Basic, Алгол, Кобол, ПЛ\1, Паскаль, Ада и т.д.) Специализированные (DOL,Python и т.д.)

  21. Обзор Языков программирования

  22. Языки программирования низкого уровня

  23. Языки низкого уровня Языком самого низкого уровня (НУ) является «Машинный код» – язык конкретной вычислительной машины, программа которого интерпретируется микропроцессором данной вычислительной машины. Каждая модель процессора имеет свой собственный машинный язык, хотя во многих моделях эти наборы команд сильно перекрываются. Языки НУ: TASM, NASM, HLASM, FASM, RosAsm, MASM, MCIL (CIL). • Достоинства языков низкого уровня • позволяют писать самый быстрый и компактный код; • максимальное использование возможностей конкретной платформы; • возможность непосредственного доступа к аппаратуре; • эффективно используются программно-аппаратные ресурсы. • Недостатки языков низкого уровня • большая трудоемкость создания программ; • требуется высокая квалификация программиста; • высока вероятность внесения ошибок в программный код; • отсутствует переносимость программ на компьютеры с другой архитектурой и системой команд.

  24. Языки assembler ASM(assembler – сборщик) является языком низкого уровня. В отличие от языка машинных кодов, позволяет использовать более удобные для человека мнемонические (символьные) обозначения команд. Команды языка ассемблера соответствуют командам процессора, фактически, они представляют собой более удобную символьную форму записи (мнемокод) команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько команд процессора. • Область применения языков ASM • драйверы устройств; • оптимизация программного кода (рендеринг, кодеки); • программы для бытовых устройств; • программирование микроконтроллеров; • взлом и защита программ; • аппаратно-зависимые части ядер операционных систем; • программирование средств связи; • написание вирусов; • для виртуализации аппаратного обеспечение (виртуальные машины).

  25. Macro Assembler (MASM) MASM(MacroAssembler) – ассемблер для процессоров семейства x86. Разработан компанией Microsoft для написания программ в операционной системы MS-DOS и был в течение некоторого времени самым популярным ассемблером, доступным для неё. • Основные особенности языка MASM • постоянно выпускаются новые версии, учитывающие новые возможности оборудования: MASM 6.15 (2000г.), MASM 7.0 (2002г.), MASM 7.1 (2003г.), MASM 8.0 (2005г.), MASM 9.0 (2008г.); • с версии 7.0 поддерживает программирование под платформу .NET; • с версии 9.0 поддерживает платформу х64; • содержит мощный программный инструментарий; • высокая скорость разработки программ по сравнению с другими языками низкого уровня.

  26. Язык turbo Assembler Турбо Ассемблер фирмы Borland представляет собой многопроходный ассемблер. В настоящее время не поддерживается фирмой Borland. В основном используется для начального обучения языкам ASM. • Основные особенности языка Turbo Assembler: • улучшенная синтаксическая проверка типов; • улучшенное управление листингом; • локальные метки; • локальные идентификаторы в стеке и аргументы вызова в процедурах; • структуры и объединения; • вложенные директивы; • возможность использования одинаковых имён для обозначения членов различных структур; • применение операторов HIGH и LOW; • корректное управление сегментами данных объединённых в группы.

  27. Язык NetwideAssembler Ассемблер NASM – это 80x86 Ассемблер, разработанный исходя из принципов переносимости и модульности. • Основные особенности языка NetwideAssembler: • поддерживает широкий диапазон форматов объектных файлов; • способность создавать простые бинарные файлы; • язык состоит из четырех исполняемых файлов.

  28. Языки программирования высокого уровня

  29. Язык с (си) Си – стандартизированный процедурный язык программирования, разработанный в начале 70-х годов сотрудниками Bell Labs Кеном Томпсоном (Kenneth Thompson) и Денисом Ритчи как развитие языкаБи. Си был создан для использования в операционной системе UNIX. Денис Ритчи (09.09.1941) Кен Томпсон (04.02.1943) • Основные особенности языкаС: • язык отличает лаконичность и минимализм; • предоставляет современный набор конструкций и структур данных; • имеет обширный набор операций; • имеет возможность прямой работы с памятью; • высокоскоростной, однопроходный компилятор; • программы отличаются компактностью и высокой скоростью исполнения; • требует высокой квалификации программиста; • известен широкому кругу программистов.

  30. Язык с++ (си++) Появился в начале 80-х годов, является стандартизированным объектно-ориентированным языком. Создан Бьерном Страуструпом (дат. Bjarne Stroustrup) на базе языка Си с целью избавиться от программирования на ассемблере, Си и других языках высокого уровня. Бьерн Страуструп (11.06.50) • Основные отличия языка С++ от С: • поддерживает принципы объектно-ориентированного программирования; • добавлены новые конструкции позволяющие повысить эффективность труда программистов; • включает стандартную библиотеку STL (Standardtemplatelibrary – стандартная библиотека шаблонов); • возможно создание шаблонов функций и классов позволяющие определять тип на этапе выполнения программы; • появились ссылки и операторы управления свободно распределяемой памятью; • появилась возможность перегружать стандартные операторы и операции.

  31. Язык с# (с sharp) C# (произносится си-шарп) – объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга (дат. Anders Hejlsberg) в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Андерс Хейлсберг (хх.12.60) • Основные особенности языка С#: • поддерживает принципы объектно-ориентированного программирования; • не поддерживает множественное наследование; • имеется возможность объявлять анонимные функции (не имеют уникального имени),обеспечивающие функциональность замыкания; • поддерживает технологию «сборки мусора» (автоматически освобождается неиспользуемая память); • хорошая совместимость с CLR (Commonlanguageruntime – общеязыковая исполняющая среда); • поддерживает технологию LINQ (Language Integrated Query –язык интегрированных запросов), которая предоставляет мощный набор инструментов составления запросов для работы с БД.

  32. Языкperl Perl(Practicalextractionandreportlanguage – язык для практического извлечения данных и составления отчётов) является высокоуровневым интерпретируемым языком общего назначения. Создан американским программистом Ларри Уоллом (LarryWall) в 1986 году. Ларри Уолл (27.09.1954) • Основные особенности языка Perl: • исполняет программы (сценарии) на стороне сервера; • позволяет динамически формировать HTML-страницы; • поддерживается на большинстве серверных платформах: MS-DOS; семейства UNIX и Windows; OS/2; Macintosh; • имеет мощные инструменты обработки строк (регулярные выражения); • эффективен для написания программ по работе с БД; • поддерживает принципы объектно-ориентированного программирования; • позволяет создавать синтаксически мощные конструкции.

  33. Языкphp PHP (Personal home page tools – инструментыдлясозданияперсональных веб-страниц) является скриптовым языкомпрограммирования общего назначения. Создан датским программистом Расмусом Лердорфом (Rasmus Lerdorf) в 1994 году. Расмус Лердорф (22.11.68) • Основные особенности языка PHP: • является лидером среди языков, применяющихся для создания динамических веб-сайтов; • используется для исполнения скриптов на стороне сервера; • поддерживает принципы объектно-ориентированного программирования; • автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределенные массивы; • прост в изучении, высокая скорость исполнения программ, богатая функциональность, кроссплатформенность; • широкий набор инструментов, позволяющий работать с БД сервера.

  34. Технология ASP.NET ASP (Activeserverpages– активные серверные страницы) является технологиейот компании Майкрософт (Microsoft), которая позволяет динамически создавать веб-страницы на стороне сервера. ASP.NETявляется развитием технологии ASP, предназначена для создания веб-приложений и веб-сервисов. Билл Гейтс (28.10.1955) • Основные особенности ASP.NET: • высокая скорость написания веб-приложений; • простота используемых языков сценариев (VBScript или JScript); • возможность использования внешних COM-компонентов; • совместимость с пакетом Microsoft .NET Framework; • языки программирования ASP.NET имеют строгую типизацию; • возможность компиляции проекта; • качественное сопровождение ПО и доступность расширенного справочного руководства.

  35. Язык Бейсик BASIC (Beginner’sall-purposesymbolicinstructioncode– универсальный код символических инструкций для начинающихили от англ. basic – основной, базовый) является высокоуровневым процедурным языком программирования. Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцом (Thomas E. Kurtz) и Джоном Кемени (John G. Kemeny). Томас Курц (слева) – 22.02.28 Джон Кемени (справа) – 31.05.26 • Основные особенности Basic: • прост в использовании для начинающих; • предоставляет расширенные возможности для профессионалов; • не требует понимания работы аппаратного обеспечения; • простота и бесструктурность поощряют порочные методики и привычки программирования, которые способны привести к краху крупных проектов; • поздние версии обладают полным функционалом присуще современным языкам высокого уровня; • является базовым языком для изучения современных языков (VBScript, Visual Basic и т.д.) поддерживаемых фирмой Microsoft.

  36. Язык Visual Basic (VB) VB– процедурный, объектно-ориентированный язык программирования разработанный фирмой Microsoft. Первая версия была разработана в 1991г. VB имеет различные реализации, например: VBA (Visual basic for applications); VBScript (Visual basic scripting edition). • Основные достоинства VB: • высокая скорость создания приложений для ОС Windows; • возможность компиляции как в машинный код, так и P-код (аппаратно-независимый код); • возможность использования большинства WinAPI функций. • Основные недостатки VB: • поддержка только ОС семейства Windows и Mac OS X; • отсутствие механизма наследования классов; • медленная скорость работы приложений; • отсутствие указателей, низкоуровневого доступа к памяти, ASM-вставок.

  37. Язык Pascal Pascal(назван в честь фр. математика Блеза Паскаля) – структурированный, процедурный язык общего назначения. Создан швейцарским ученым Никлаусом Виртом 1968-1970г. с целью лишить недостатков язык Algol. Паскаль был создан как язык для обучения процедурному программированию. Никлаус Вирт (15.02.1934) • Основные особенности языка Pascal: • строгая типизация (позволяет исключить дополнительные ошибки); • наличие средств структурного (процедурного) и модульного программирования; • популярный язык для начального обучения языкам программирования; • принципы языка схоже с языком Си, в следствии этого Pascal используетсядля начального обучения с целью перехода на язык Си; • достаточно много семантических и синтаксических ошибок исключается на этапе компиляции; • не эффективен для разработки больших проектов; • развитие языка (в Delphi) не успевает за новыми технологиями.

  38. Язык Delphi Delphi (от древнегреческого города Дельфы) является структурированным, объектно-ориентированным языком программирования. Разработан фирмой Borland в 1993г.на базе языка Object Pascal. 1 июля 2008 года права на Delphi проданы компании Embarcadero Technologies. • Основные особенности языка Delphi: • поддерживает принципы объектно-ориентированного программирования; • среда Delphi предназначена только для ОС семейства Windows, для платформ Linux имеется язык Kylix (из-за убыточности проекта в 2002 г. фирма Borland прекратила поддержку); • в отличие от С++ все объекты по умолчанию располагаются в динамической памяти; • поддерживает делегирование и метаклассы; • инструменты для работы с БД отличаются своей низкой надежностью; • используется для быстрого создания небольших приложений.

  39. Язык Java Java – интерпретируемый, объектно-ориентированный язык программирования. Изначально язык назывался Oak (дуб) и разрабатывался Джеймсом Гослингом для программирования бытовых электронных устройств. Началась разработка в 1990г. программистами компании Sun Microsystems, в 1996г. вышла первая версия. • Основные особенности языка Java: • программы транслируются в байт-код, который интерпретируется виртуальной машиной Java (JVM), за счет этого достигается независимость от ОС и оборудования; • низкая скорость выполнения программ из-за интерпретируемости; • идеи заложенные в Java были взяты фирмой Microsoft и реализовались в платформе .NET; эти идеи имеют большое будущее; • простые средства создания сетевых приложений; • автоматическое управление памятью (сборщики мусора); • имеет расширенный набор коллекций (массивы, списки, стеки и т.д.); • имеет средства создания многопоточных приложений.

  40. Язык Python Python – объектно-ориентированный, функциональный высокоуровневый язык программирования общего назначения с акцентом на производительность разработчика и читаемость кода. Создан в 1991г. голландским программистом Гвидо ван Россумом (нидерл. Guido van Rossum). Гвидо ван Россум (31.01.1960) • Основные особенности языка Python: • динамическая типизация (тип переменной определяется в момент присваивания значения); автоматическое управление памятью; полная интроспекция (тип и структура объекта определяется во время выполнения программы); высокоуровневые структуры данных; • поддержка многопоточных вычислений; • портируем на все известные платформы от КПК до мейнфреймов; • классы являются одновременно объектами; • низкая скорость выполнения программ; отсутствие статической типизации; глобальная блокировка интерпретатора (GIL).

  41. Язык prolog Prolog (PROgramming in LOGic) – язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка. Разработан в 1970 г. Аланом Кольмероэ (Alain Colmerauer) и Филиппом Русселом (Philip Russell). Алан Кольмероэ (24.01.1941) • Основные особенности языка Prolog: • программа на языке Prolog состоит из набора фактов, определенных отношений между объектами данных (фактами) и набором правил (образцами отношений между объектами базы данных); • пользователь вводит запрос (набор термов, которые все должны быть истинны) и получает результат, в соответствии с заданными фактами и правилами; • используется для логического программирования; • получил развитие в языке OWL применяемый для описания онтологий.

  42. Язык OWL OWL(Webontologylanguage) – язык описания онтологий для семантической паутины. Онтология – это попытка всеобъемлющей и детальной формализации некоторой области знаний с помощью концептуальной схемы. Язык разработан компанией W3C (World wide web consortium) в 2004г. • Основные особенности языка OWL: • позволяет описывать классы и отношения между ними, присущие для веб-документов и приложений; • в основе языка – представление действительности в модели данных «объект – свойство»; • язык носит характер рекомендаций обязательных для исполнения; • имеются разновидности языка: OWL Lite – классификационная иерархия и простые ограничения; OWL DL – максимальная выразительность при сохранении полноты вычислений и разрешаемости; OWL Full –максимальная выразительность и синтаксическая свобода RDF без гарантий вычисления; • в 2009 году появилась новый язык – OWL2.

  43. Язык SQL SQL(Structuredquerylanguage – язык структурированных запросов) универсальный языкпрограммирования, применяемый для создания, модификации и управления данными в реляционных базах данных. Создан в начале 70-х годов в одной из исследовательских лабораторий компании IBM. В 1986г. был принят первый стандарт языка SQL. • Основные особенности языка SQL: • основывается на реляционной алгебре; • является стандартом управления данными в реляционных БД; • широкая известность и распространенность; • поддерживается популярными СУБД: MySQL, MSSQLServer, Oracle, а также и другими СУБД; • независимость от конкретной СУБД; • хорошая формализация языка, наличие стандартов; • сложность работы с иерархическими структурами.

  44. Язык HTML HTML(Hypertextmarkuplanguage – язык разметки гипертекста) – стандартный язык разметки документов во Всемирной паутине. Разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1991 – 1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). Тим Бернерс-Ли (08.06.1955) • Основные особенности языка HTML: • большинство веб-страниц создаются при помощи HTML или XHTML; • любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками – тегами; • элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font); • веб-страница, написанная на HTML, интерпретируется браузером; • позволяет внедрять в веб-страницу мультимедийную информацию; • высокая интеграция с другими языками и технологиями программирования.

  45. Язык Ada Ада – язык программирования, созданный в 1979—1980 годах в результате проекта, предпринятого Министерством обороны США с целью разработать единый язык программирования для встраиваемых систем. Язык назван в честь Ады Лавлейс. • Особенности языка Ada: • язык регистро-независимый; • программы модульные, механизм контроля импорта-экспорта описаний между модулями включает две разные директивы: одну для подключения другого модуля (with), другую — для импорта его описаний (use); • поддерживается механизм обобщённых (настраиваемых) модулей; • развитая система типов; • поддерживается переопределение процедур, функций и операторов.

  46. Язык algol Алгол – название ряда языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ. Алгол был разработан в 1958 году, на недельной конференции в ETH. Эдсгер Дейкстра(11.05.1930) • Особенности языка Algol: • введены структурные управляющие конструкции (ветвления, циклы, последовательные участки); • возможность организации рекурсивных процедур; • два способа передачи параметров в подпрограмму − по имени и по значению.

  47. Примеры программ на языках программирования Пример программы на языке MASM .386 .model flat, stdcall option casemap :none include \masm32\include\masm32.inc include \masm32\include\kernel32.inc include \masm32\macros\macros.asm includelib \masm32\lib\masm32.lib includelib \masm32\lib\kernel32.lib .code start: print "Hello world" exit end start

  48. Примеры программ на языках программирования Пример программы на языке С ++ #include <iostream> // это необходимо для std::coutи std::endl int main() { std::cout << "Hello, world!" << std::endl; } Пример программы на языке Ada with Ada.Text_IO; procedure Hello is use Ada.Text_IO; begin Put_Line("Hello, world!"); end Hello;

  49. Примеры программ на языках программирования Пример программы на языке Algol Begin File F (Kind=Remote); EBCDIC Array E [0:11]; Replace E by "HELLO, WORLD!"; While true do begin Write (F, *, E); End; End.

  50. Примеры программ на языках программирования Пример программы на языке С# using System; namespace Example { class Program { static void Main() { Console.WriteLine("Hello, World!"); Console.ReadKey(true); } } }

More Related