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

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

Программирование - процесс и искусство создания компьютерных программ с помощью языков программирования.

Программирование  сочетает в себе элементы искусства, науки, математики и инженерии.

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

В более широком  смысле, программирование - процесс создания программ, то есть разработка программного обеспечения.

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

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

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

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

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

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

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

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

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

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

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

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

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

Общеизвестный пример низкоуровнего языка —  язык ассемблера.

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

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

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

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

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

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

Одним из следствий  этого стало добавление поддержки  того или иного языка низкого  уровня (язык ассемблера) в ряд современных  профессиональных высокоуровневых  языков программирования.

Наиболее распространёнными  высокоуровневыми языками являются C++, Visual Basic, Java, Python, Ruby, Perl, Delphi (Pascal), PHP.

Первым языком программирования высокого уровня считается  компьютерный язык Plankalkül разработанный  немецким инженером Конрадом Цузе ещё  в период 1942 - 1946 гг.

Однако, широкое  применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для  этого языка (1957 год).

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

Функциональные (Лисп, Haskell, Nemerle, Clean, ML, Flang, Erlang, Miranda, Curry);

Стековые (PostScript, Forth);

Структурные (Алгол, Basic, QBASIC, Фортран, Фокал, Cg);

Процедурные (Ада, Бейсик (версии начиная с Quick Basic до появления Visual Basic), Си, КОБОЛ, Фортран, Модула-2, Глагол (русский аналог Оберона), Паскаль, ПЛ/1, Рапира, REXX);

Языки динамического программирования (Python, PHP, Ruby, JavaScript);

Учебные (Алгоритмический язык, КуМир, Лого, Робик, Рапира, Форт, Postscript);

Описания интерфейсов (CORBA IDL, COM IDL);

Прототипные (Actor-Based Concurrent Language, ABCL: ABCL/1, ABCL/R, ABCL/R2, ABCL/c+, Agora, Cecil, Cel, ECMAScript, ActionScript, DMDScript, JavaScript, JScript, Factor, NewtonScript, Obliq, OpenLaszlo, REBOL, Self, Slate, TADS);

Объектно-ориентированные (Eiffel, Simula, Java, C#, C++, Object Pascal (Delphi), VB.NET, Visual, DataFlex, Perl, PHP, Python, Scala, ActionScript, JavaScript, JScript.NET, Ruby, Ada, Xbase++);

Языки логического программирования (Prolog);

Языки параллельного программирования (MC#);

Сценарные, или скриптовые (Perl, Python, PHP, Tcl (Tool command language), Ruby, ERM, Lua);

Эзотерические (Byter, Brainfuck, Befunge, INTERCAL, Whitespace).  

1.DataFlex

     DataFlex — это объектно-ориентированный язык программирования 4-го поколения и система управления базами данных . Он позволяет создавать надёжные, масштабируемые, переносимые и производительные приложения. Сохраняя преемственность поколений, он предлагает ту же методологию и структуру построения прикладных программ, которая используется в Visual DataFlex.

DataFlex является  полностью переносимой средой разработки. Приложения, работающие в текстовом режиме, могут быть созданы для Microsoft Windows, GNU/Linux и основных UNIX-систем. Код приложения может легко переноситься в любую из поддерживаемых платформ без каких-либо дополнительных операций, за исключением перекомпиляции.

Первая версия DataFlex (прародителя Visual DataFlex) появилась в конце 1970-х годов XX века и являлась одним из первых тиражных процедурных языков программирования для СУБД. В середине 80-х годов XX века была выпущена одна из самых совершенных на тот момент версий системы — DataFlex 2.3b, которая получила очень широкое распространение и популярность, поднявшая компанию Data Access в первую сотню рейтинга ИТ компаний. В это же время, DataFlex, одним из первых, появился в СССР. Основной областью применения была медицина. Продукт активно использовался 4-м Главным Управлением Минздрава СССР («Кремлёвская больница»), Отраслевой поликлиникой ГУВД Московской области.

В 1991 году вышла  первая объектно-ориентированная версия языка — DataFlex 3.0. универсальность  и удобство использования существенно расширили области применения системы.

Первая версия для Microsoft Windows была выпущена в середине 1990-х годов (DataFlex for Windows 3.51), однако не получила широкого распространения вплоть до выхода первой полнофункциональной версии Visual DataFlex 4. С этого момента Visual DataFlex стал стандартом для большого числа компаний-разработчиков программного обечпечения.

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

2.PHP

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

В области программирования для Сети PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений[7]. Основные из них:

  • автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
  • взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
  • автоматизированная отправка HTTP-заголовков;
  • работа с HTTP-авторизацией;
  • работа с cookies и сессиями;
  • работа с локальными и удалёнными файлами, сокетами.
  • обработка файлов, загружаемых на сервер;
  • работа с XForms;

В настоящее  время PHP используется сотнями тысяч  разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых  систем, в апреле 2011 года PHP находился на 5 месте среди языков программирования.[5] К крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и др.

Входит в LAMP — распространённый набор программного обеспечения для создания веб-сайтов (Linux, Apache, MySQL, PHP).

3.Java

Java объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года.

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

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

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

4.Borland Enterprise Server

     Borland Enterprise Server - Унифицированная, высокоэффективная программная среда для развертывания и управления широким кругом приложений электронного бизнеса и Web-сервисов. Предоставляет решение для J2EE, идеальное для малого и среднего бизнеса.

Borland Enterprise Server - один из самых надежных и масштабируемых серверов приложений J2EE, полностью поддерживающий последние индустриальные стандарты: J2EE, EJB, JMS, Servlet, JSP, XML и SOAP. В основе сервера лежит Borland VisiBroker, самое используемое в мире CORBA-решение. Плотная интеграция с Borland Jbuilder, инструментом Java-разработки №1 в мире, обеспечивает эффективные и бесшовные разработку и развертывание для приложений масштаба предприятия.

    5.Eiffel

     Eiffel (Эйфель) — объектно-ориентированный язык программирования с алголоподобным синтаксисом, разработанный Бертраном Мейером. В этом языке впервые был реализован метод контрактного программирования.

Существуют компиляторы  Эйфеля для MS Windows, DOS, OS/2 и UNIX. Большинство реализаций Eiffel генерирует код Си, то есть являются своеобразным препроцессором. Далее этот код компилируется с помощью компилятора Си. Однако есть системы, которые порождают и непосредственно машинный код. Например, Visual Eiffel[

  • Объектно-ориентированная программная структура, в которой класс выступает в качестве основной единицы декомпозиции.
  • Дизайн по контракту тесно интегрирован с другими языковыми конструкциями.
  • Автоматическое управление памятью, как правило, осуществляется в процессе сборки мусора.
  • Наследование, в том числе множественное наследование, переименование, переопределения, конструкция select (англ. выбор), наследование без полиморфизма, и другие механизмы, призванные сделать наследование безопасным.
  • Ограниченное и неограниченное обобщенное программирование.
  • Единая система типов, использующая механизмы как значащих, так и ссылочных типов данных, в которых все типы, включая базовые, например, INTEGER, являются классами.
  • Типо-безопасность (статическая типизация).
  • Статическая защита от вызовов по пустой ссылке, используя механизм прикрепления типов (англ. attached-types mechanism).
  • Агенты — объекты, сворачивающие вычисления внутри себя, — тесно связаны с механизмами замыканий и лямбда-выражений.
  • «Единоразовые» (англ. once) процедуры или процедуры выполняющиеся только один раз, для совместного использования объекта и децентрализованной инициализации.
  • Традиционный синтаксис на основе ключевых слов языков АЛГОЛ и Pascal, но без использования сепаратора (точка с запятой в конце инструкции не является обязательной).
  • Нечувствительность к регистру.

6.ActionScript

     ActionScript — объектно-ориентированный язык программирования, один из диалектов ECMAScript, который добавляет интерактивность, обработку данных и многое другое в содержимое Flash-приложений. ActionScript исполняется виртуальной машиной (ActionScript Virtual Machine), которая является составной частью Flash Player. ActionScript компилируется в байткод, который включается в SWF-файл.

SWF-файлы исполняются  Flash Player-ом. Flash Player существует в виде плагина к веб-браузеру, а также как самостоятельное исполняемое приложение (standalone). Во втором случае возможно создание исполняемых exe-файлов (projector), когда swf-файл включается во Flash Player.

ActionScript 1.0 является прототипным языком программирования. То есть он вполне реализует все три принципа объектно-ориентированного программирования.

ActionScript 2.0 является  надстройкой над ActionScript 1.0. Проверка типов и работа с иерархией классов осуществляется во время компиляции, которая заканчивается генерацией байткода, аналогичного ActionScript 1.0.

В 2006 году вышел  ActionScript 3.0 в среде программирования Adobe Flex, а позже в Adobe Flash 9.

7.Ruby

Ruby (англ. Ruby ['ɹu:bɪ— «Рубин») — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного[1][2] объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. Ruby близок по особенностям синтаксиса к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Python, Лисп, Dylan и CLU.

Создатель Ruby — Юкихиро Мацумото (Matz) — интересовался языками программирования, ещё будучи студентом, но идея о разработке нового языка появилась позже. Ruby начал разрабатываться 24 февраля 1993 года и вышел в свет в 1995 году.

Название навеяно  языком Perl, многие особенности синтаксиса и семантики из которого заимствовано в Ruby: англ. pearl — «жемчужина», ruby — «рубин».

Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в разработке, интерпретируемого языка программирования. 

8.Delphi

Delphi (Де́лфи, произносится) — среда программирования, в которой используется язык программирования Object Pascal.[2] Начиная со среды разработки Delphi 7.0[3], в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения связанные с современными тенденциями (например, с развитием платформы .net) развития языков программирования: появились class helpers, перегрузки операторов и д.р.Object Pascal — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. 

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