Визуальное программирование

Лекция №1. Введение в программирование.

Классификация языков программирования

  Языки программирования - это формальные языки, применяемые для описания информации и алгоритма ее обработки на ЭВМ.

Существует множество классификаций языков программирования по различным критериям. Самое простое деление - на языки высокого и низкого уровня.

Язык низкого уровня – это язык программирования, предназначенный для определенного типа компьютера и отражающий его внутренний машинный код. Языки низкого уровня часто называют машинно-ориентированными языками. Язык низкого уровня представляет собой систему двоичных или шестнадцатеричных команд, написанных в машинных кодах. Программист общается с машиной на "ее языке". Он понимается ею без преобразований. Эти языки используется, в основном, программистами профессионалами и обладают существенным недостатком - машинная зависимость, т.е. невозможность переноса программы на другой тип машин. Примером языка низкого уровня является АССЕМБЛЕР.

Язык высокого уровня не зависит от внутренних машинных кодов компьютера любого типа. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах.

Еще одна распространенная классификация языков программирования основана на принципе их организации. По этой классификации языки делят на процедурные (структурные), объектно-ориентированные, функциональные и логические.

В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. В эту группу входят такие языки как ПАСКАЛЬ, С, АДА, ФОРТРАН, БЕЙСИК.

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

В функциональных языках программа описывает вычисление некоторой функции. Основная идея, лежащая в основе функционального программирования – это представление программы в виде математических функций (т.е. функций, значение которых определяется лишь их аргументами, а не контекстом выполнения). Обычно функция задается как композиция других, более простых, те в свою очередь разлагаются на еще более простые и т.д. Один из основных элементов в функциональных языках – рекурсия, т.е. вычисление значения функции через значение этой функции от других элементов. Представителями этой группы являются ЛИСП, ML и Haskell.

В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования является ПРОЛОГ.

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

Нисходящее и восходящее проектирование.

Одна из основных идей, положенных в большинство известных технологий программирования, - нисходящее проектирование (Top-Down Programming – программирование «сверху вниз»). Существуют также другие названия: «метод пошаговой детализации», «систематическое программирование», «иерархическое программирование». Его принцип состоит в том, что сначала определяются основные функции, которые должны быть обеспечены разрабатываемой программой, а затем они конкретизируются с помощью набора дополнительных функций.

В методе нисходящего проектирования сначала пишется основная программа, используя средства вызова подпрограмм. Затем, будучи уверенным в правильности логического построения основной программы пишется каждая подпрограмма, вызывая по мере необходимости подпрограммы более низкого уровня. Этот последовательный процесс продолжается пока программа не будет завершена и проверена.

При другом методе – восходящем проектировании (программировании «снизу вверх»), сначала пишутся программы нижнего уровня, тщательно тестируются и отлаживаются. Далее добавляются подпрограммы более высокого уровня, которые вызывают подпрограммы нижнего уровня, и так до тех пор, пока не будет достигнута программа самого верхнего уровня. Метод проектирования «снизу вверх» пригоден при наличии больших библиотек стандартных программ.

Иногда лучшим является гибрид двух методов. Однако в обоих случаях каждая подпрограмма должна быть небольшой, так чтобы легко было понять ее логику.

Операторы.

Программа на языке высокого уровня состоит из исполняемых операторов и операторов описания.

Исполняемый оператор задает законченное действие, выполняемое над данными. Примеры операторов: вывод на экран, занесение числа в память, выход из программы.

Оператор описания описывает данные, над которыми в программе выполняются действия. Примером описания на естественном языке может служить предложение: «В памяти следует отвести место для хранения целого числа, и это место мы будем обозначать А».

Описания должны предшествовать операторам, в которых используются соответствующие данные.

Трансляция.

Для того, чтобы выполнить программу, написанную на языке программирования высокого уровня требуется перевести ее на язык понятный процессору – в машинные коды. Этим занимаются специальные программы, которые называются языковыми процессорами, или трансляторами.

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

Трансляция - процесс перевода программы с языка программирования высокого уровня на машинный язык.

Различают два вида трансляторов: интерпретаторы и компиляторы.

Интерпретатор – это программа, которая получает исходную программу на языке высокого уровня и по мере распознавания его операторов выполняет описываемые ими действия.

Интерпретатор в течение всего времени работы программы находится в оперативной памяти компьютера наряду с исходным текстом программы. Интерпретатор считывает ее первый оператор, переводит его в машинные команды и тут же организует выполнение этих команд. Затем переходит к переводу и выполнению следующего оператора и так до конца программы. При этом результаты предыдущих переводов в памяти не сохраняются.

Компилятор работает следующим образом. Получив на вход исходный текст программы, машина считывает очередной оператор, написанный на языке. Переводит оператор в свои, ей понятные команды. При попадании на ошибку процесс перевода прерывается, и машина указывает на это. Продолжает данный процесс, пока не иссякнут все строки программы, т.е. пока не дойдет до указателя конца программы. Выполняет переведенную программу целиком.

Среда разработки.

В настоящее время практически любая реализация языка представлена как среда разработки, которая включает в себя:

1. транслятор (компилятор или интерпретатор);

2. отладчик – специальную программу, которая облегчает процесс поиска ошибок; пользуясь ею, разработчик может выполнять программу «по шагам», отслеживать изменения значений переменных в процессе выполнения;

3. встроенный текстовый редактор;

4. специальные средства для просмотра структуры программы;

5. библиотеку готовых модулей, классов, например для создания пользовательского интерфейса.

Визуальное программирование.

В 1980-е гг. активно прорабатывалась идея визуального программирования, основной смысл которой состоит в том, чтобы процесс «сборки» программы осуществлялся на экране дисплея из программных конструкций-картинок. В результате появились среды разработки, в которых разрабатываемый программный продукт строился из готовых крупных блоков при помощи мыши. Примерами таких сред являются Delphi, Visual Basic и др.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: