Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Короткий огляд основних моделей зовнішньоекономічних зв'язків




Эволюция и классификация языков программирования. Трансляция, компиляция, интерпретация

WEND

<выражение> - определяет условие выполнения цикла

<тело цикла> - любое количество пронумерованных строк программы, содержащих повторяющиеся операторы

WEND – признак конца тела цикла

Вычисляется <выражение>, если полученное значение истинно, то выполняется <тело цикла> и вновь вычисляется <выражение>. Если полученное значение ложно, то осуществляется выход из цикла и управление передаётся оператору, который следует за оператором WEND.

Цикл с постусловием (DO-LOOP-WHILE, DO-LOOP-UNTIL)

 

1. Языки программирования низкого, высокого и сверхвысокого уровня

Для решения задачи с помощью компьютера, алгоритм записывают на одном из языков программирования в виде программы

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

Программирование – это теоретическая и практическая деятельность решения задачи средствами конкретного языка программирования и оформления полученных результатов в виде программы.

Команды (инструкции), предназначенные для ЭВМ, необходимо записывать в понятной ей форме. С этой целью применяются языки программирования - искусственные языки, алфавит, словарный запас и структура которых удобны человеку и понятны компьютеру.

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

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

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

Более многочисленную группу составляют языки программирования высокого уровня, средства которых допускают описание задачи в наглядном, легко воспри­нимаемом виде. Они позволяют на уровне написания программы оперировать с привычными объектами: операторами, функциями, процедурами и т.д. Поэтому принято считать, что такие ЯП являются в определенном смысле универсальными. С одной стороны они не привязаны ни к какой конкретной предметной области, а с другой, часто имеют достаточно развитые системные возможности

Отличительной особенностью языков программирования высокого уровня является их ориентация не на систему команд той или иной ЭВМ, а на систему операторов, характерных для записи определенного класса алгоритмов. К языкам программирования этого типа относятся: Бейсик, Фортран, Алгол, Паскаль, Си.

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

Языки программирования сверхвысокого уровня обладают очень высоким уровнем абстракции. В отличие от языков программирования высокого уровня, где описывается принцип «как нужно сделать», в сверхвысокоуровневых языках программирования описывается лишь принцип «что нужно сделать». Это языки используют для специфических приложений и задач (т.е. предметно-ориентированные). В связи с этой ограниченностью они могут использовать синтаксис, который никогда не используется в других языках программирования, например, непосредственно синтаксис английского языка.

Такие языки позволяют оперировать понятиями, принятыми в конкретной предметной области. Как правило, они практически лишены возможности доступа к системным ресурсам компьютера, но программировать в них может (часто без особой подготовки) специалист в соответствующей предметной области. Такими ЯП являются MatLab, Eureka Solver, MachCAD и т.д.

К языкам сверхвысокого уровня также часто относят такие современные скриптовые и декларативные (в частности функциональные) языки как Python, Perl.

 

5.3.2. Вычислительные языки программирования и языки символьной обработки

 

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

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

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

 

5.3.3. Процедурные, объектно-ориентированные и декларативные языки программирования

 

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

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

К основным процедурным языкам программирования, относят: Basic (всех версий), КОБОЛ, ФОРТРАН, Паскаль, Си

BASIC - язык программирования для начинающих – Характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых.

Кобол – для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;

Язык Фортран - для программирования научно-технических задач;

Язык Паскаль (PASCAL) язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему). К основным принципам, которыми обладает Паскаль, можно отнести: а) Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных; б) Программирование “сверху-вниз”, когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.

Язык СИ. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера.

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

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

Си – это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью.

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

Основными концепциями объектно-ориентированного программирования (ООП) являются понятия объектов и классов (либо, прототипов - образцовых объектов).

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

· Система состоит из объектов

· Объекты некоторым образом взаимодействуют между собой

· Каждый объект характеризуется своим состоянием и поведением

· Состояние объекта задаётся значением полей данных

· Поведение объекта задаётся методами

Класс — это тип, описывающий устройство объектов. Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.

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

Наследование – возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Наследование призвано отобразить такое свойство реального мира, как иерархичность.

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

Модульность – объекты заключают в себе полное определение их характеристик, никакие определения методов и свойств не располагаются вне объекта

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

Примером такого языка может служить язык программирования визуального общения Object Pascal, С++, Java.

Object Pasca l - объектно-ориентированное расширение языка Pascal.

C++ (Си++) - объектно-ориентированное расширение языка Си

Java (Джава, Ява). Этот язык создан на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора – виртуальной Java-Maшины JVM(JavaVirtualMachine), версии которой созданы для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому язык Ява стал очень популярным. Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технологияJini) и созданию платформно-независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технологияJavaBeans). Пока основной недостаток этого языка – невысокое быстродействие, так как язык Ява интерпретируемый.

Декларативные языки программирования предназначены для решения задач искусственного интеллекта, к ним относят такие языки, которые способны в зависимости от набора исходных данных модифицировать алгоритм работы, т.е. «на ходу» менять программу. Они подразделяются на функциональные и логические.

Функциональные языки. В их основе лежит понятие функции как «черного ящика», имеющего аргументы на входе и результат на выходе:

В функциональных языках программирования отсутствуют операторы: все действия, в том числе и управляющие конструкции, выполняются при помощи вызовов функций. Поскольку каждая функция возвращает значение, ее можно подставить в качестве аргумента другой функции, что позволяет записывать сложные выражения в функциональной форме. Одним из первых функциональных языков - интерпретируемый язык LISP(Лисп)

Логические языки. Логическое программирование представляет собой попытку возложить на программиста только постановку задачи, а поиски путей ее решения предоставить транслятору. В основу языков этой группы положена математическая модель теории исчисления предикатов. Программа на этом языке (Prolog(Пролог)) строится из последовательности фактов и правил, а затем формулируется утверждение, которое Пролог будет пытаться доказать с помощью введенных правил. Человек только описывает структуру задачи, а внутренний «мотор» Пролога сам ищет решение с помощью методов поиска и сопоставления.

 

5.3.4. Трансляционные программы

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

· интерпретаторы

· компиляторы

 

5.3.5. Интерпретаторы и компиляторы

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

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

Начало формы

Конец формы

 




Поделиться с друзьями:


Дата добавления: 2017-02-01; Просмотров: 57; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.044 сек.