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


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

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

Как компьютер нас понимает

Чтобы заставить компьютерную программу сделать определённое действие, мы выбираем в её настройках необходимую опцию, ждём, пока программа выполнит обработку информации и наслаждаемся результатом. Но мало кто из нас задумывался, а почему нажатие определённой кнопки заставляет работать программы? Как она понимает, чего мы хотим? Всё дело в том, что любая программа – это сложный набор команд, которые задаются с использованием специальных «переводчиков» или компиляторов.

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

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

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

  1. C++    (1983)
  2. Python   (1990)
  3. Visual Basic    (1991)
  4. PHP    (1994)
  5. Delphi     (1995)
  6. Java     (1995)
  7. JavaScript    (1995)
  8. Ruby   (1995)
  9. ActionScript   (1998)
  10. Nemerle  (2006)

Кратко рассмотрим их плюсы и минусы.

Обзор самых популярных программирования

1) С++

Это один из первых, и невероятно популярный до сих пор язык, которым просто обязан владеть каждый программист. Не обязательно начинать изучение программирования именно с него, но со временем С++ всё равно станет одним из наиболее используемых компиляторов. С момента своего создания этот язык прошёл несколько стандартизаций и обновлений, благодаря чему остаётся актуальным и в наше время. Основным его плюсом является полная универсальность – на С++ можно писать всё. Именно благодаря этому его так часто используют профессионалы. Также можно отметить сравнительную простоту компилятора – если вы уже овладели С, Python или  Java, то работать с С++ для вас не составит труда.

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

Правда, вторая проблема была частично решена в 1998 году, когда были введены дополнительные шаблоны компилятора. В целом, что бы ни говорили критики, а С++ вот уже почти 30 лет остаётся одним из наиболее популярных языков программирования в мире.

Python видео урок

2) Python

Питон – достаточно популярный в наше время язык, суть которого сводится к тому, чтобы как можно проще было создавать сложные программы. Созданный на основе более ранних языков, он впитал в себя все их наработки и является более совершенным. К тому же он постоянно обновляется, последняя версия была выпущена в начале 2012 года. Основные плюсы компилятора – минимализм, многофункциональность  и простота. Но в свою очередь, за минимализм приходится платить низким быстродействием, а за минимализм – наличием множества ошибок в системном коде, некоторые из которых присутствуют и в самых последних версиях. Как бы то ни было, но и Python нашёл своих поклонников. Ознакомиться с языком можно здесь.

Visual Basic видео урок

3) Visual Basic

Этот продукт от Майкрософт знают все программисты, ведь большинство именно на нём познавало азы работы с компиляторами. Он прост, многофункционален и идеально подходит для быстрого создания прототипов программ. Кроме широких возможностей по созданию программного кода, также с его помощью можно конструировать пользовательский интерфейс программы. Именно ВБ чаще всего используют профессионалы из Майкрософт для создания своих программ.  Недостатки у компилятор также есть. К ним относятся отсутствие указателей, низкоуровневый доступ к памяти компьютера. Также программа отличается невысокой скоростью работы и возможностью использования только на Windows и Mac OS X. Более подробно ознакомиться с Visual Basic можно на сайте https://ru.wikipedia.org/wiki/Visual_Basic

4) PHP

Это язык программирования, который чаще всего применяют специалисты для создания веб-страниц. В настоящее время его принимают и поддерживают большинство хостинг-провайдеров. Благодаря возможности применения на любой ОС, скорости выполнения, функциональности и простоте его используют практически все разработчики сайтов. Также с помощью PHP можно создавать графический интерфейс пользователя. Создатели языка заложили в него несколько пасхальных яиц. Например, если ввести в  строку любой_сценарий.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 то на экране появится фотография (то, что на ней изображено, зависит от версии).

Из недостатков языка важно вспомнить то, что если вы написали код на более ранней версии, то на новой он, скорее всего, не откроется.  Также в нём просто не предусмотрена возможность создания многопоточных программ. Узнать больше информации о языке можно на сайте www.php.net

Delphi видео урок

5) Delphi

Delphi – многофункциональный язык, созданный на основе Object Pascal. Данный язык является ещё одним из самых популярных языков из-за наличия огромного количества компиляторов и диалектов. Каждый программист использует именно тот диалект, который подходит для его основного направления в работе. В целом, Delphi – императивный, объектно-ориентированный язык. Чаще всего на этом языке создаются разнообразные программы. Так, именно с помощью Delphi создали Light Alloy, AIMP, The KMPlayer, Total Commander, QIP,  графический интерфейс Skype и многое другое. Именно наличие множества диалектов является одновременно и достоинством, и недостатком языка, так как программу, написанную на одном из них, другой компилятор, скорее всего, не откроет. Сайт https://ru.wikipedia.org/wiki/Delphi позволит более подробно ознакомиться с этим языком.

6) Java

Это ещё один известный язык, способный работать на любой платформе. Более того, сейчас большинство операционных систем просто обязаны включать его в свой состав, так как работа некоторых приложений без этого компилятора будет недостаточно  результативной. Однако есть у языка и подводные камни. Так, программы, написанные на Java, имеют репутацию слишком медлительных и требующих больших объёмов оперативной памяти. Java имеет несколько модификаций (не диалектов, а именно разных видов), которые созданы для различных целей. Каждый из них имеет свои уникальные библиотеки данных и структуру, позволяющую более продуктивно работать над определённым направлением программирования. Больше информации на сайте http://www.oracle.com/technetwork/java/

JavaScript видео урок

7) JavaScript

JavaScript – необходимый атрибут большинства современных браузеров. Чаще всего цель этого языка – придать веб-страницам больше интерактивности. На его создание повлияли множество более ранних языков программирования, на основе которых он соединил многофункциональность и простоту. По крайней мере для опытных программистов. Область применения JavaScript необычайно широка – это и веб-приложения, и браузеры, и прикладное ПО, и офисные и серверные приложения. Широкую популярность также обеспечивают ему специальные библиотеки, позволяющие достичь высокого уровня абстракции. Из минусов JavaScript стоит отметить очень низкий уровень безопасности его приложений, а также массу ошибок в песочнице, браузере, плагинах и расширениях, с которыми хотя бы однажды сталкивался каждый. Но в то же время, совсем отказаться от этого языка пока что нельзя, ведь без него откажут в работе большинство интернет-браузеров. Более подробно на javascript.ru

8) Ruby

Это кроссплатформенный и невероятно многофункциональный язык, полностью предназначенный  для объектно-ориентированных программ. Синтаксис языка простой и лаконичный, без множества ненужных кодов. Также язык содержит в себе сборщик ненужного мусора, поддерживает блоки команд и замыкания с полной привязкой к переменным. У Руби довольно обширное количество разнообразных библиотек, каждая из которых применяется в определённых случаях,  в зависимости от необходимости. Также особенностью этого скриптового языка является то, что программы, написанные на нём, могут в дальнейшем использовать его для расширения своих возможностей.  На данный момент уже выпущено несколько версий языка, каждая из которых принесла что-то новое в принцип его работы. Кроме того, этот язык один из самых экономных по отношению к ресурсам компьютера, за что его так любят обычные программисты. Самая последняя из них — 1.9.3-p194, релиз которой состоялся 20 апреля 2012 года. На официальном сайте вы можете более подробно ознакомиться с достоинствами и недостатками этого языка www.ruby-lang.org

ActionScript видео урок

9) ActionScript

Этот язык также менее популярен среди обывателей из-за того, что с его помощью можно писать в основном объектно-ориентированные программы, даже чаще всего не программы, а Flash – приложения. Синтаксис и функциональность компилятора стандартны для подобного рода языков и заключаются в работе, запрограммированной лишь на указанный вид приложений. Плюсом этого языка является его многофункциональность по отношению к Flash. Как ни странно, но это же одновременно и его минус, так на нём больше нельзя написать практически ничего. Узнать больше о этом компиляторе можно на сайте actionscript.org

Nemerle видео урок

10) Nemerle

Это высокоуровневый гибридный язык, который сочетает в себе возможности как функционального, так и объектно-ориентированного программирования. Созданный всего несколько лет назад, он впитал в себя соответствующие наработки всех предыдущих поколений языков программирования, и, одновременно с этим, привнёс в создание программ кое-что новое – возможность метапрограммирования. Суть этого метода в создании программ, которые во время своей работы генерируют другие программы. То есть, можно сказать, что он сам создаёт языки программирования? И да, и нет. Он создаёт возможные сценарии для дальнейшего генерирования исполняемых файлов. В целом, Nemerle просто-напросто объединил в себе все самые лучшие и необходимые функции более ранних языков.  В общем, вышло так, что наиболее новый язык имеет меньше всего недостатков. Больше информации на  http://nemerle.org/About/.

Итог

Языков программирования в наше время великое множество. Мы рассмотрели лишь самые популярные из них. Каждый имеет свои недостатки и преимущества из-за того, что они ориентированы на различные сферы программной деятельности. Один отлично работает с браузерами, но совершенно не подходит для написания Flash, другой – совсем наоборот. Каждый программист начинает с самых простых из них и в конце обучения выбирает или тот, который больше всего подходит ему из-за направления его деятельности, и становится специалистом в этой области, или же продолжает понемногу использовать каждый из них.

Большинство из специалистов рекомендуют начинать обучение с Visual Basic, потом переходить на С++, а дальше выбирать наиболее интересный и удобный, на ваш взгляд, язык. Кроме того, не стоит забывать о том, что у большинства языков программирования есть ещё и свои диалекты, которые иногда сильно различаются между собой.

www.13min.ru

3.3.1 Типы языков программирования — функциональные, процедурные, объектно-ориентированные языки

Поколения языков программирования

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

Развитию программирования поспособствовала идея Джона Фон Ньюмана (англ. John Von Neumann), опубликованная в 1945 году, в которой он описал компьютер, где в памяти вместе с данными хранится и сама программа.

Языком программирования первого поколения считается машинный код. Машинный код состоит из инструкций, которые компьютер (процессор) может выполнить (а также данных, которые принадлежат этим инструкциям). Программируя на машинном коде, программист должен был писать свою программу в двоичном коде, так что бы процессор мог это понять и исполнить. В сущности, такое программирование требует хорошего знания и понимания аппаратного обеспечения, потому что в процессе программирования необходимо знать что процессор может сделать, где находятся устройства ввода-вывода (англ. I/O- Input-Output), а также как с ними необходимо общаться и сколько времени будет потрачено на ту или иную операцию. Таким образом, машинный код очень крепко связан с аппаратным обеспечением, на котором соответствующая программа будет работать. На сегодняшний день машинный код из компьютеров никуда не исчез, все действия на низком уровне (уровне аппаратного обеспечения) происходят до сих пор в машинном коде, т.е. на каком бы языке программирования не была написана программа в, конечном итоге она преобразуется в понятный аппаратному обеспечению машинный код.

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

MOV AL, 19

ADD AL, 4

OUT 2

Данный отрывок кода присваивает регистру AL значение 19(обычно значения представлены числами в шестнадцатеричной системе), прибавляет к значению регистра AL число 4 и после этого отправляет на выход номер 2. Написанная программа переводится из ассемблера в машинный код и после этого процессор может начать её выполнение.

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

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

К числу языков третьего поколения относится большинство известных и используемых языков программирования, например:

FORTRAN (The IBM Mathematical FORmula TRANslating System) - язык программирования, разработанный в 1950-тых годах для математических вычислений и в научных целях.

COBOL (COmmon Business Oriented Language) - Объектно-ориентированный язык программирования, созданный в 1959году, в основном для написания программ удовлетворяющих бизнес нуждам.

BASIC (Beginner's All-purpose Symbolic Instruction Code) - Язык, разработанный в 1963 году, который поначалу создавался для того, чтобы инженеры могли производить на компьютерах различные симуляции.

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

С - имя происходит от того, что этот язык в основном базировался на языке с именем B. Создавался для написания операционных систем (многие UNIX совместимые операционные системы написаны на этом языке), уже долгое время является одним из самых популярных языков программирования.

С++ - объектно-ориентированный С.

Java - язык программирования, разработанный на основе С++.

Visual Basic, Delphi, Python, C# - все являются языками третьего поколения. Многие языки программирования третьего поколения моложе (новее), чем некоторые языки четвёртого и пятого поколений.

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

Базовые типы языков программирования.

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

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

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

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

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

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

Интерпретируемые и компилируемые языки

До того, как компьютер сможет выполнить программу, написанную на языке высокого уровня, её приходится «переводить» на понятный компьютеру язык, т.е. машинный код. Этот процесс перевода называют трансляцией, а программу-переводчик - транслятором. Трансляторы делятся на два класса: компиляторы и интерпретаторы.

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

Интерпретация заключается в том, что программа в машинном коде (интерпретатор) записывает файл программы во внутреннюю память и начинает её построчно выполнять. Примером может служить старый язык BASIC.

Интерпретация программы примерно в 10-200 раз медленнее, чем выполнение скомпилированного кода. В противовес отладка (удаление ошибок из программы) интерпретируемой программы, как правило, проще, чем в случае транслируемой программы. В некоторых подходящих случаях и при наличии подручных инструментов эти различия могут быть гораздо меньше. Хорошим примером служит Java с кодом, оптимизированным и скомпилированном на промежуточном уровне, который во время выполнения транслируется компилятором Just-in-Time в подходящий конкретному аппаратному обеспечению.

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

www.e-ope.ee

50. Основные элементы языков программирования.

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

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

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

Языки низкого уровня

Языки высокого уровня

Машинно-ориентированные языки

(машинные коды, Ассемблер)

Алгоритмические языки

вместо команды ассемблера ADD языки высокого уровня позволяют написать нормальное математическое выражение со знаком «+», например, a=b+c.

Каждый язык программирования предназначен для решения определенного класса задач:

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

Кобол – для решения экономических задач

Бейсик , Pascal – для обучения

Java (джава) – язык сетевого программирования.

Для системного программирования наиболее подходят языки C, C++ и Ассемблер. C и – язык разработанный для написания операционной системы UNIX (обычно ядро операционных систем писали на Assembler ).

2. Системы программирования

Системы программирования – это комплексы программ и прочих средств, предназначенных для разработки и их эксплуатации на конкретном языке программирования для конкретного вида ЭВМ.

Система программирования включает:

Текстовый редактор

программа-отладчик

Транслятор – программа переводчик с конкретного алгоритмического языка на машинного ориентированный.

компоновщик (редактор связей)

Программа, обеспечивающая запуск программы

Текст программы, написанный на конкретном алгоритмическом языке.

отладка исходного текста программы (поиск и устранение ошибок)

Программа на машинно-ориентированном языке

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

+ библиотека подпрограмм, + Help

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

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

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

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

Большинство современных компиляторов работают в режиме трансляции.

В некоторых языках, вместо машинного кода генерируется интерпретируемый двоичный код " виртуальной машины ", также называемый байт-кодом ( byte-code ). Такой подход применяется в Forth, Lisp, Java , Perl, Python, а также в языках платформы Microsoft .NET.

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

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

3. Синтаксис и семантика

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

Синтаксис – описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).

Пример синтаксической ошибки : употребление оператора цикла For без To или Next, или отсутствие знака равенства в приведенной на рисунке программе.

Синтаксические ошибки распознаются встроенным синтаксическим анализатором.

Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.

Семантика – определяет смысловое значение предложений алгоритмического языка.

Пример семантической ошибки :

1) For i As Integer = 1 To 10 Step -2

2) Если надо вычислить , то запись x = a / b * c содержит семантическую ошибку, т.к. приоритет операций деления и умножения одинаков, то вначале а делиться на b , а затем полученный результат умножает на с .

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

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

Программирование

Императивное

Декларативное

функциональное

логическое

Императивные языки программирования – Бейсик, Паскаль, Си и прочие (включая объектно-ориентированные).

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

Одна из характерных черт императивного программирования – наличие переменных с операцией "разрушающего присвоения". То есть, была переменная А, было у нее значение Х. Алгоритм предписывает на очередном шаге присвоить переменной А значение Y. То значение, которое было у А, будет "навсегда забыто".

Если задача описывается последовательным исполнением операций ("открыть кран, набрать воды"), то такие задачи идеальные кандидаты на императивную реализацию.

Декларативные языки программирования:

Функциональные языки программирования – LISP , ISWIM ( If you See What I Mean ), ML ( Meta Language ), Miranda

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

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

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

Логические языки программирования – Prolog.

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

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

Программирование

Процедурное

Объектно-ориентированное

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

Ада, Бейсик, Си, C++, С# (из Microsoft) КОБОЛ, Паскаль, Delphi, Фортран, Java, Перл, Visual Basic, PHP

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

Java, Си, Visual Basic

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

Объект – это базовое понятие ООП. Любой объект принадлежит одному или нескольким классам, которые в свою очередь определяют, описывают поведение объекта.

Примеры классов : "Гном", "Хоббит", "Маг".

Примеры объектов : "хоббит по имени Фродо Бэггинс", "маг по имени Гэндальф".

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

Свойства – описание объекта. Примеры атрибутов: "имя", "рост". Набор конкретных значений определяет текущее состояние объекта.

Метод – это действие объекта, изменяющее его состояние или реализующее другое его поведение. Пример методов: "назвать свое имя", "стать невидимым".

Объект, класс, метод, свойства, события – это базовые понятия ООП.

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

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

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

К концепции ООП относится:

Полиморфизм – это взаимозаменяемость объектов с одинаковым интерфейсом. Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество методов». В зависимости от типа объекта одно и то же сообщение может соответствовать различным действиям – методам для достижения требуемого результата.

Пример полиморфизма : в ответ на призыв "К оружию! Защищайся!" гном схватит боевой топор, эльф приготовит лук и стрелы, а хоббит спрячется за дерево (у него нет метода, для выполнения требуемых действий). Объекты реагируют на одно и тоже сообщение строго специфичным для них образом.

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

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

Пример наследования : на основании класса "Личность" создаются его подклассы "Хоббит", "Маг", "Эльф" и "Человек", каждый из которых обладает свойствами и поведением "Личности", но добавляет собственные свойства и меняет поведение.

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

Программирование

Неструктурное

Структурное

Неструктурное программирование допускает использование в явном виде команды безусловного перехода (в большинстве языков GOTO). Типичные представители неструктурных языков - ранние версии Бейсика и Фортрана. Однако в языках высокого уровня наличие команды перехода влечет за собой массу серьезных недостатков: программа превращается в "спагетти" с бесконечными переходами вверх-вниз, ее очень трудно сопровождать и модифицировать. Фактически неструктурный стиль программирования не позволяет разрабатывать большие проекты. Ранее широко практиковавшееся первоначальное обучение программированию на базе неструктурного языка (обычно Бейсика) приводило к огромным трудностям при переходе на более современные стили. Как отмечал известный голландский ученый Э. Дейкстра, "программисты, изначально ориентированные на Бейсик, умственно оболванены без надежды на исцеление".

Структурное программирование

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

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

последовательное выполнение

ветвление

цикл

не должно быть безусловных переходов!!!!!!!!!

studfiles.net

Основные понятия языков программирования. Развитие языков программирования.

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

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

  • Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека к компьютеру, в то время как естественные языки используются для общения людей между собой. Можно обобщить определение «языков программирования» — это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.

  • Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

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

Появление машинного языка

Но с развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Суть этого языка — набор кодов, обязательно понятных процессору, к кому обращаются. Части («слова») этого языка называются инструкциями, каждая из которых представляет собой одно элементарное действие для центрального процессора, как, например, считывание информации из ячейки памяти. Если знаешь, можно непосредственно управлять процессором. Тогда ещё компьютеры были простыми вычислительными машинами, основная задача была считать. Но они развивались, а, понятно дело, использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому со временем от его использования пришлось отказаться.

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

Язык ассемблера

На протяжении 1950-х годов запросы на разработку программного обеспечения возросли и программы стали очень большими. Приходилось писать очень много кода, хотя обеспечение и было весьма простым: по тем временам дизайн рабочего стола был проще нынешнего, программы работали с элементарными вещами, а компьютер только ещё начинал победно шествовать. Однако программы запутывались всё больше, их структура усложнилась, потому что всё время развивалась компьютерная техника. Тогда стали пользоваться специальными программами-сборщиками программ из маленьких кусочков кодов — ассемблерами. Начался новый этап развития.

Теперь, когда была нужна эффективная программа, вместо машинных языков использовались близкие к ним машинно-ориентированные языки ассемблера. К таковым относились, например, Autocode, с 1954-го г. — IPL (предшественник языка LISP) и, с 1955-го г. — FLOW-MATIC (предшественник языка COBOL). Теперь люди стали использовать мнемонические команды взамен машинных команд.

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки. Например, для процессора Zilog Z80 машинная команда 00000101предписывает процессору уменьшить на единицу свой регистр B. На языке ассемблера это же будет записано как DEC B.

Языки высокого уровня

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня — Фортран (англ. FORTRAN - FORmula TRANslator), а за ним и некоторые другие, как LISP, ALGOL 58, FACT (ещё один предшественник языка COBOL). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Конечно, это достижение было очень ценно. Условными словами можно было, как привычно человеку, гораздо более просто выразить сложную программную операцию из битов. Однако, легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. То есть, простоты по-прежнему не хватало. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language), таких как Алгол (1958), Паскаль (1970), Си (1972).

1959-й год — изобретён COBOL.

1962-й год — Симула. С него началась эпоха структурного программирования.

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

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

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

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

Коротко, это достижение в области программирования было очень велико. Теперь программирование можно было разбить на классы и тестировать не всю программу, состоящую из 10 000 строк кода, а разбить программу на 100 классов, и тестировать каждый класс. Это существенно облегчило написание программного продукта.

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

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

Также создавались функциональные (аппликативные) языки (Пример: Lisp — англ. LISt Processing, 1958) и логические языки (пример: Prolog — англ. PROgramming in LOGic, 1972).

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

ООП

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

Примерами объектно-ориентированных языков являются Object Pascal, C++, Java, C# и др.

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

studfiles.net

2. Основные алгоритмические языки программирования.

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

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

  • Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
  • Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время, как естественные языки используются для общения людей между собой. В принципе, можно обобщить определение «языков программирования» — это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
  • Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

 

Языки программирования компьютеров делятся на 2 основные группы:

1) языки низкого уровня;

2) языки высокого уровня.

 

К языкам низкого уровня относятся языки Ассемблера. Свое название они получили от имени системной программы Ассемблер, которая преобразует исходные программы, написанные на таких языках, непосредственно в коды машинных команд. Термин "Ассемблер" произошел от английского слова assembler (сборщик частей в одно целое). Частями здесь служат операторы, а результатом сборки последовательность машинных команд. Процесс сборки называется ассемблированием.

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

Ассемблер позволяет также гибко и полно использовать технические возможности компьютера, как и язык машинных команд. Транслятор исходных программ в Ассемблере проще транслятора, требующегося для языка программирования высокого уровня. На Ассемблере можно написать столь же эффективную по размеру и времени выполнения программу, как и программу на языке машинных команд. Это достоинство отсутствует у языков высокого уровня. Этот язык часто применяют для программирования систем реального времени, технологическими процессами и оборудованием, обеспечение работы информационно-измерительных комплексов. К таким системам обычно предъявляются высокие требования по объему занимаемой машинной памяти. Часто язык Ассемблера дополняется средствами формирования макрокоманд, каждая из которых эквивалентна целой группе машинных команд. Такой язык называют языком макроассемблера. Применение мак "строительных" блоков и приближает язык Ассемблера к языку высокого уровня.

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

Паскаль

Язык программирования Паскаль был разработан профессором кафедры вычислительной техники Швейцарского Федерального института технологии Николасом Виртом в 1968 году как альтернатива существующим и все усложняющимся языкам программирования, таким, как PL/1, Algol, Fortran. Интенсивное развитие Паскаля привело к появлению уже в 1973 году его стандарта в виде пересмотренного сообщения, а число трансляторов с этого языка в 1979 году перевалило за 80.

В начале 80-х годов Паскаль еще более упрочил свои позиции с появлением трансляторов MS-Pascal и Turbo-Pascal для ПЭВМ. С этого времени Паскаль становится одним из наиболее важных и широко используемых языков программирования. Существенно то, что язык давно вышел за рамки академического и узко профессионального интереса и используется в большинстве университетов высокоразвитых стран не только как рабочий инструмент пользователя. Важнейшей особенностью Паскаля является воплощенная идея структурного программирования. Другой существенной особенностью является концепция структуры данных как одного из фундаментальных понятий.

Основные причины популярности Паскаля заключаются в следующем:

-         простота языка позволяет быстро его освоить и создавать алгоритмически сложные программы

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

-         наличие специальных методик создания трансляторов с Паскаля упростило их разработку и способствовало широкому распространению языка

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

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

При описании достоинств Паскаля нужно сказать, что он является прототипом для языков нового поколения (среди которых следует отметить языки Ada и Modula-II). Паскаль дает очень много в понимании сущности программирования, он прививает хороший стиль программирования, тщательную разработку алгоритма. Преимущества этого языка особенно ощутимы при написании достаточно сложных и мобильных (т. е. легко переносимых на другие PC) программ.

Си

Сотрудник фирмы Bell Labs Денис Ритчи создал язык Си в 1972 году во время совместной работы с Кеном Томпсоном, как инструментальное средство для реализации операционной системы Unix, однако популярность этого языка быстро переросла рамки конкретной операционной системы и конкретных задач системного программирования. В настоящее время любая инструментальная и операционная система не может считаться полной если в ее состав не входит компилятор языка Си.

Ритчи не выдумывал Си просто из головы – прообразом служил язык Би разработанный Томпсоном. Язык программирования Си был разработан как инструмент для программистов-практиков. В соответствии с этим главной целью его автора было создание удобного и полезного во всех отношениях языка.

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

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

Си – эффективный язык. Его структура позволяет наилучшим образом использовать возможности современных ПЭВМ. Программирование на этом языке отличается компактностью и быстротой исполнения.

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

Си – мощный и гибкий язык. Большая часть операционной системы Unix, компиляторы и интерпретаторы языков Фортран, Паскаль, Лисп, и Бейсик написаны именно с его помощью.

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

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

Си++

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

Очевидно, что больше всего C++ позаимствовал из языка Си, а также из непосредственного его предшественника языка BCPL. Эти заимствования обеспечили C++ мощными средствами низкого уровня, позволяющие решать сложные задачи системного программирования. Но что в первую очередь отличает C++ от Си – это разная степень внимания к типам и структурам данных. Это связанно с появлением понятий класса, производного класса и виртуальной функции, перенятых в свою очередь из языка Симула 67. Это дает в C++ более эффективные возможности для контроля типов и обеспечивает модульность программы.

 

По мнению автора языка, различие между идеологией Си и C++ заключается примерно в следующем: программа на Си отражает “способ мышления” процессора, а C++ - способ мышления программиста. Отвечая требованиям современного программирования, C++ делает акцент на разработке новых типов данных наиболее полно соответствующих концепциям выбранной области знаний и задачам приложения. Класс является ключевым понятием C++. Описание класса содержит описание данных, требующихся для представления объектов этого типа и набор операций для работы с подобными объектами.

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

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

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

Бейсик

Бейсик  (Basic - Beginner’s All-Purpose Symbolic Instruction Code – “универсальный символический код инструкций для начинающих”). Прямой потомок Фортрана и до сих пор самый популярный язык программирования для персональных компьютеров. Появился Бейсик в 1963 году (назвать автора было бы трудно, но основная заслуга в его появлении несомненно принадлежит американцам Джону Кемени и Томасу Курцу). Как и любые преимущества, простота Бейсика оборачивалась, особенно в ранних версиях трудностями структурирования; кроме того, Бейсик не допускал рекурсию – интересный прием, позволяющий составлять эффективные и в то же время короткие программы.

Разработаны мощные компиляторы Бейсика, которые обеспечивают не только богатую лексику и высокое быстродействие, но и возможность структурного программирования. По мнению некоторых программистов, наиболее интересными версиями являются GWBASIC, Turbo-Basic и Quick Basic.

В свое время появление Quick Basic ознаменовало рождение второго поколения систем программирования на языке Бейсик. Он предоставлял возможность модульного и процедурного программирования, создания библиотек, компиляции готовых программ и прочее, что вывело его на уровень таких классических языков программирования, как Си, Паскаль, Фортран и др. Более того, в связи с отсутствием официального стандарта языка Бейсик, его реализация в виде Quick Basic стала фактическим стандартом. Безусловными лидерами среди различных версий Бейсика были Quick Basic 4.5 и PDS 7.1 фирмы Microsoft, появившиеся в конце 80-х годов.

HTML

Термин HTML (HyperText Markup Language) означает "язык маркировки (разметки) гипертекстов". Первую версию HTML разработал сотрудник Европейской лаборатории физики элементарных частиц Тим Бернерс-Ли.

Язык HTML был необходим для статического размещения страниц во “Всемирной паутине” WWW (World Wide Web).

Со времени создания первой версии HTML претерпел некоторые изменения. Как и многое другое в компьютерном мире, версии, или спецификации, HTML оказались пронумерованными. Известны спецификации 2.0, 3.0 и 3.2.

Java

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

Язык Java потребовался для создания интерактивных продуктов для сети Internet. Фактически, большинство архитектурных решений, принятых при создании Java, было продиктовано желанием предоставить синтаксис, сходный с Си и Cи++. В Java используются практически идентичные соглашения для объявления переменных, передачи параметров, операторов и для управления потоком выполнением кода. В Java добавлены все хорошие черты C++.

Три ключевых элемента объединились в технологии языка Java

-         Java предоставляет для широкого использования свои апплеты (applets) — небольшие, надежные, динамичные, не зависящие от платформы активные сетевые приложения, встраиваемые в страницы Web. Апплеты Java могут настраиваться и распространяться потребителям с такой же легкостью, как любые документы HTML.

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

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

 

shlepotrun.narod.ru

Базовые языки программирования

Сегодня человечество уже не мыслит свою жизнь без компьютера. Играть в компьютерные игры, знакомиться с друзьями в социальных сетях, работать в прикладных программах – стало обычным делом. Всё это связано с работой специального программного обеспечения. Для его написания требуется знание особого языка понимаемого компьютером – языка программирования.

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

•FORTRAN – один из первых языков. Был разработан в 1955 году. Использует особый алгоритм математических вычислений. Обычно применяется для воплощения научных идей и решения инженерных задач.

•Pascal - особенность состоит в структурном программировании и строгой типизации. Он понятен и прост для начинающих программистов. Его создали в 1970 году с целью обучения программированию.

•Delphi – приемник Pascal. Более разнообразен и имеет значительно расширенный набор функционала. Его широкое применение обусловлено лёгкостью его изучения.

•C+ - это на нём пишется большинство прикладных программ используемых на домашних компьютерах с ОС Windows.

•Python – развивающийся язык с большим будущим. На нём создаются 3D игры. Применяется при написании программ работающих с 3D графикой.

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

Видео:

python-3.ru

Основы программирования на языках высокого уровня

В данном разделе раскрываются основные понятия языков программирования высокого уровня. Рассматриваются основные типы данных и даётся обзор наиболее востребованных операторов.

    1. Основные понятия языков программирования

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

Программирование начиналось с записи программ непосредственно в виде двоичных чисел машинных команд (в кодах, как говорят программисты). Сегодня практически все программы создаются с помощью языков программирования. Теоретически программу, как и алгоритм, можно описать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически перевести такую программу в машинный код практически невозможно.

Языки программирования— это формальные искусственные языки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.

Алфавит— разрешенный к использованию набор символов, с помощью которого могут быть образованы слова данного языка, никакие другие символы в тексте не допускаются.

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

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

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

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

Зарезервированные имена– уже имеющие определённый смысл слова, которые не могут использоваться в иных целях. В каждом языке (иногда даже в разных версиях одного и того же языка) существуют свои особенности присвоения имён и зарезервированные слова. Примеры допустимых и недопустимых имён (для языков Бейсик, Паскаль, Си++) приведены в таблице 15.

Таблица 15

studfiles.net