- •Лекция № 1
- •Тема 1.1. Сущность и роль технологии программирования, языки и системы программирования.
- •Учебные вопросы:
- •Тема 1.1. Сущность и роль технологии программирования, языки и системы программирования.
- •Введение
- •1. История программирования от первых автоматов до первых эвм
- •1.1. О терминах
- •1.2. Ранняя история программирования автоматов
- •1.3. Станки с числовым программным управлением
- •1.4. Вычислительные машины
- •1.5. Двоичная система
- •1.6. Архитектура фон Неймана
- •1.7. Машинный код
- •2. Сущность, роль и основные принципы технологии программирования
- •2.1. Этапы решения задач на эвм
- •2.2. Задачи технологии программирования
- •2.3. Основные принципы технологии программирования
- •3. Основные понятия программирования
- •4. Языки и системы программирования, язык JavaScript
- •4.1. Классификация языков программирования
- •4.2. Характеристика систем программирования на языкахJavaScript/Jscript
4. Языки и системы программирования, язык JavaScript
4.1. Классификация языков программирования
Существующие языки программирования можно классифицировать по различным критериям.
По области применения:
универсальные(машинные языки универсальных вычислительных машин, Паскаль, С и С++, Лисп, Пролог,VisualBasicи др.) – предназначенные для решения задач из любой области, хотя для некоторых областей они могут быть более приспособлены;
специализированные(языки команд контроллеров, языки функциональных схем для программирования контроллеров, язык управления базами данныхSQLи др.) – ориентированные на решение задач только в одной или нескольких близких областях и совсем не приспособленные к другим областям.
По уровню абстракции от особенностей машиныи приближения понятий языка к понятиям прикладной области, для которой создаётся программа:
низкого уровня(машинные языки, ассемблерные языки);
высокого уровня(Паскаль, С и С++, Лисп, Пролог,VisualBasicи др.) – в них уже отсутствует ориентация на конкретные машины и их классы, но ещё практически не содержатся прикладные понятия;
сверхвысокого уровня(SQLи другие специализированные языки высокого уровня).
По способу описания процесса решения задачи:
процедурные(Паскаль, С и С++,VisualBasicи др.) – описывают последовательность шагов (процедур, действий), необходимых для решения задачи, т.е. алгоритм;
непроцедурные(функциональные – Лисп, логические – Пролог,SQLи др.) – описывают задачу (а не алгоритм) таким образом, чтобы «умная» система программирования сама нашла алгоритм решения или применила некоторую универсальную решающую процедуру;
объектно-ориентированные(Smalltalk,Delphi,C++,Java,VisualBasic,JavaScriptи др.) – расширяют возможности процедурных языков, вводя понятияобъектисобытие. Практически полностью сменили поколение просто процедурных языков.
По способу организации вычислительного процесса:
последовательные(практически все процедурные языки высокого уровня, созданные до 1980 года – Фортран, Алгол, Паскаль, Модула и др.) – программа описывает только один процесс, все действия которого выполняются строго последовательно;
параллельные (процедурные языки высокого уровня Ада28, Оккам29, Фортран 90/95, НРС, НРС++, МС#, Модула-3 и др.) – программа может содержать несколько последовательных процессов (потоков), исполняющихся одновременно (параллельно) синхронно, асинхронно, взаимодействуя друг с другом. Предназначены для программирования параллельных компьютеров (кластеров, суперкомпьютеров).
По способу исполнения программ:
компилируемые(Паскаль,Delphi, С и С++,VisualBasicи др.) – с помощью программы-компилятора текст программы автоматически переводится на машинный язык и создаётся исполнимый файл программы (*.exe); для переноса программы на другой тип машины или операционной системы её необходимоперекомпилировать(обычно другим компилятором);
интерпретируемые(VBScript,Java,JavaScript, Лисп, Пролог и др.) – тексты программ на некотором языке исполняются программой-интерпретаторомиливиртуальной машинойдля данного языка. Текст программы на интерпретируемом языке может без изменения исполняться на любой машине, где есть интерпретатор для этого языка.