Lect5
.pdfИнформатика
Лекция 5.
Языки и технологии программирования
Основные этапы решения задач с помощью компьютера:
•Постановка задачи;
•Анализ и исследование задачи, модели;
•Разработка алгоритма
•Пpогpаммиpование (кодирование на языке программирования);
•Тестиpование и отладка;
•Анализ результатов решения задачи;
• СопровождениеАпрограммы.В. |
. |
2 |
Гаврилов |
|
Кафедра АППМ, НГТУ
Уровниязыков программированияания
Естественные языки Терминология конкретной предметнойой областиобласти
Высокоуровневые языки программированиярования
Низкоуровневыеязыки программированиявания
(напр. C)
Ассемблер (мнемокоды)
Машинный код (то, чтоисполняет процессороцессор))
А.В.Гаврилов |
3 |
Кафедра АППМ, НГТУ
Языкивысокого/низкого уровняя
Языкивысокогоуровня – максимальноо приближеныкзадаче. Наиболее выраженожено вв предметноориентированныхязыках..
Приоритет – что?
Языкинизкогоуровня – вцентре вниманиямания нене задача, атехнологияеёреализации, связаннаясвязанная сязыком / машиной. Привлекаются дополнительныепонятия, не связанныеные сс задачей.
Приоритет – как?
А.В.Гаврилов |
4 |
Кафедра АППМ, НГТУ
Разнообразие языков программирования
Со времени создания первых программируемых машин человечество придумало > 8500 языков программирования. Каждый год их число пополняется новыми.
Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей.
Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
А.В.Гаврилов |
5 |
Кафедра АППМ, НГТУ
Классификации языков
Языки программирования
Высокого уровня |
|
Низкого уровня: |
|
C / C++, Assembler |
|
|
|
Общего назначения: |
|
Предметно-ориентированные: |
Perl, Java, Python |
|
Matlab, PL SQL, AutoLisp |
Языки программирования
Императивные: |
|
Декларативные |
|
Мультипарадигменные |
C, Pascal, Java, Perl |
|
|
Ruby |
|
|
|
|
|
Функциональные языки: |
|
Языки логического прогр.: |
|
||
|
LISP, Haskell |
А.В.Гаврилов |
Prolog |
6 |
||
|
Кафедра |
АППМ, НГТУ |
|
|
||
|
|
|
Парадигмы программирования
Парадигма — способ организации программы, то есть принцип ее построения. Наиболее распространенными являются процедурная и объектно-ориентированная парадигмы. Они различаются способом декомпозиции, положенным в основу при создании программы.
•Процедурная декомпозиция состоит в том, что задача,
реализуемая программой, делится на подзадачи, а они, в свою очередь — на более мелкие этапы, то есть выполняется пошаговая детализация алгоритма решения задачи.
•Объектно-ориентированная декомпозиция предполагает разбиение предметной области на объекты и реализацию этих объектов и их взаимосвязей в виде программы.
•Функциональная и логическая парадигмы.
А.В.Гаврилов |
7 |
Кафедра АППМ, НГТУ
Классификация языков программирования
По стилю (используемая парадигма) или виду организации:
•Алгоритмические
–Pascal, C, Fortran, Cobol, Basic
•Объектно-ориентированные
–C++, Object Pascal (в среде Delphi), Java, C#
•Логические
–Prolog, SmallTalk
•Функциональные
–LISP
По виду выполнения программы:
•Компилируемые
–Pascal, C, С++, С#, Pascal, Fortran, Cobol, язык Ассемблера
•Интерпретируемые
–Basic, Prolog, LISP, Java
•Скриптовые
–Javascript, PHP, Python, Perl, Ruby
А.В.Гаврилов |
8 |
Кафедра АППМ, НГТУ
Есть еще проблемно-ориентированные (специализированные) языки программирования
•Языки для моделирования
•Языки программирования для станков с ЧПУ
•Языки программирования роботов
•Скриптовые языки в играх и в инструментальном ПО для создания игр
А.В.Гаврилов |
9 |
Кафедра АППМ, НГТУ
TIOBE Programming Community Index for February 2009
Position |
Position |
Programming |
Ratings |
|
|
Feb |
|
|
|||
Feb 2009 |
Feb 2008 |
Language |
|
|
|
2009 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
Java |
19.4% |
|
|
|
|
|
|
|
|
2 |
2 |
C |
15.8% |
|
|
|
|
|
|
|
|
3 |
5 |
C++ |
9.6% |
|
|
|
|
|
|
|
|
4 |
3 |
(Visual) Basic |
8.8% |
|
|
|
|
|
|
|
|
5 |
4 |
PHP |
8.8% |
|
|
|
|
|
|
|
|
6 |
8 |
C # |
5% |
|
|
|
|
|
|
|
|
7 |
7 |
Python |
4.5% |
|
|
|
|
|
|
|
|
8 |
6 |
Perl |
4.1% |
|
|
|
|
|
|
|
|
9 |
9 |
Delphi |
3.6% |
|
|
|
|
|
|
|
|
10 |
10 |
А.В.Гаврилов |
3.5% |
|
10 |
JavaScript |
|
|
|||
|
|
Кафедра АППМ, НГТУ |
|
|
|
|
|
|
|
|