Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

ВВЕДЕНИЕ

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

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

Программирование охватывает:

- Исследование;

- Проектирование - создание совокупности расчетов;

- Шифрование и компоновка - написание начального текста проекта и изменение его в реализуемый шифр с поддержкой компилятора;

- Испытание и отладку - нахождение и удаление погрешностей в проекте;

- Проверку и поставку проекта;

- Поддержание;

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

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

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

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

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

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

Первый алгоритмический язык FORTRAN был изобретен компании IBM для собственных надобности, в 50 годы. Уже тогда имелось некое количество наработок языков, хотя конкретно создание FORTRAN'а стало отсчетом новой эры

Он разрешал проводить расчеты лишь только при поддержке записи алгоритма с применением операторов ввода/вывода и условных. Первоначально этот язык создавался специально для вычислительной системы IBM 407. Но известность FORTRAN'а привела, что даже производители остальных архитектур стали выпускать личные трансляторы. Выпущен совместный стандарт FORTRAN 66 в 1966 году.

В конце 50 гг. появился отличный вариант FORTRAN'у. Питер Наур создал алгоритмический язык, самостоятельный от архитектуры и назвал его ALGOL. Создатели попытались увеличить возможности языка.

В начале 60 гг. IBM представили язык PL/I. PL/I работал с архитектурой IBM 360 и служил типичным расширением FORTRAN'а при поддержке неких средств языка COBOL. Первый язык, в котором было внедрено понятие класса - Simula-67. Дал и Найард создали его в конце 60 - 70 гг. создали Pascal. Pascal получил массовую популярность.

Минобороны США немного позднее начала создание языка высокого уровня. Спецпроект разрабатывали 4 независимые группы, при всем этом формирование условий и спецификаций велась на базе языка Pascal.
Конечный продукт был выпущен в начале 80 гг. и получил название Ada.

70 гг. в том же духе порадовали нас универсальным языком, который называется C. Создателями были Кен Томпсон и Денис Ритчи. У системных программистов язык пользовался огромнейшей популярностью , первое ядро ОС UNIX создано было конкретно на нем. В 1982 году стандарт C поступил в разработку в ANSI, конечный вариант был принят в 1990 году. На базе языка С были изобретены современные языки Java и C++.

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

С переходом на ПК, ЯП превратились в отдельную часть сред разработки.

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

Первые ряд поколений ЭВМ основывались на традиционных основах, установленных американским математиком Джоном фон Нейманом в 1946 г., когда возникли исследования цифровых ЭВМ с программным управлением.

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

Главная суть ЯП содержитсятся в планировании действий по обработке информации. Любой ЯП основан на системе понятий, на базе которой человек может формулировать  свои суждения.

Теоретическую базу ЯП составляют алгоритмические языки. В настоящее время для ЭВМ создано существенное количество ЯП. Они различаются друг от друга разными качествами, а значит, и областью внедрения.

2.1 Ruby

Юкихиро Мацумото разработчик ЯП Ruby. Он увлекался ЯП, когда был ещё студентом. 23.02.1993 г. Ruby стал создаваться и в 1995 г. вышел. Наименование было получена от Perl, почти все индивидуальности синтаксиса и семантики из которого взяты в Ruby.

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

Ruby стал известным в Японии с этапа возникновения первой доступной версии в 1995 году. Хотя техдокументация была на одном японском языке, это то и удерживало язык от дальнейшего распространения. Только в 1997 г. возникло представление о Ruby на английском языке. В 1998 г. появился форум " ruby-talk " . Что дало рост признания языка в остальном мире. Были опубликованы книги на разных языках, даже на русском. На данный момент Ruby входит в большинство дистрибутивов ОСLinux, поставляется совместно с Mac OS X, доступен пользователям других ОС.

Язык так же обладает независимой от ОС реализацией многопоточности, серьезной динамической типизацией, сборщиком мусора и многочисленными другими возможностями. По особенностям синтаксиса он подобен языкам Perl и Eiffel. По объектно-ориентированному подходу — к Smalltalk. Кроме того некие черты языка заимствованы из Python, Lisp, Dylan и Клу.

Мацумото, фанат объектно-ориентированного программирования, он мечтал о языке, гораздо сильнее, чем Perl, и наиболее объектно-ориентированном, чем Python. Главная задача Ruby — создание легких и в то же время понятных программ, где принципиальна не скорость работы программы, а меньшее время разработки, понятность и простота синтаксиса.

Язык соответствует " меньшей внезапности " : программа обязана быть такой какой ждет от нее программист. Хотя в контексте Ruby это имеет меньшая внезапность не при связи с языком, а при его основательном исследовании.

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

Также не считая массивных возможностей, встроенных в язык, ruby поставляется с больше обычной библиотекой. Библиотека для работы с разными сетевыми протоколами на стороне сервера и клиента, средства для работы с различными форматами представления данных.

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

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

2.2 Perl

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

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

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

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

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

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

2.3 SQL

SQL- непроцедурный ЯП, используется с целью формирования, изменения и управления информацией в свободной реляционной базе данных, управляемой подходящей системой управления базами данных.

Целью создания стало разработка легкого непроцедурного языка, которым имел возможность воспользоваться любой пользователь,в том числе и не имеющий навыков программирования. Фактически создание языка запросов занимались Дональд Чэмбэрлин и Рэй Бойс. Пэт Селинджер занималась разработкой стоимостного оптимизатора, Рэймонд Лори занимался компилятором запросов.

Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально ориентировались на применение по меньшей мере нескольких СУБД . Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.

Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах.

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

SQL предоставляет шанс найти нужную информацию быстрым и надёжным методом. Применяя SQL, можно легко запрашивать и извлекать существенные объёмы данных из больших и сложных БД.

2.4 Objective-C

Objective-C — компилируемый объектно-ориентированный ЯП, применяемый компанией Apple, созданый на базе языка Си и парадигм Smalltalk. В частности, объектная модель построена в манере Smalltalk — т.е. объектам посылаются сообщения.

Objective-C был разработан Брэдом Коксом в начале 1980 в его компании Stepstone. Он хотел решить проблему повторного использования кода.

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

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

Несмотря на прошлогоднюю шумиху около нового языка Apple Swift, Objective-C по-прежнему остаётся основополагающим языком приложений для экосистемы Apple. С Objective-C и официальным инструментом разработки ПО от Apple XCode до App Store — рукой подать.

2.5 PHP

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

Php-скрипты традиционно обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения:

- лексический анализ исходного кода и генерация лексем,

- синтаксический анализ полученных лексем,

- генерация байт-кода, исполнение байт-кода интерпретатором( без создания выполняемого файла).

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

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

В сфере веб-программирования, в частности серверной части, PHP — один из популярных языков. В настоящее время PHP применяется сотнями тысяч разработчиков. К наикрупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др. На PHP создано огромное множество сайтов, направленных на большой объём данных.

2.6 Java

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

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

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

Язык java активно употребляется для создания мобильных приложений под операционную систему android. При этом программы компилируются в необычный байт-код, для применения их виртуальной машиной dalvik( начиная с android 5. 0 lollipop виртуальная машина заменена на art). Для таковой компиляции употребляется доп аппарат, а конкретно software development kit, разработанный компанией google.

Разработку приложений разрешено вести в среде android studio, netbeans, в среде eclipse, применяя при этом плагин android development tools( adt) или в intellij idea. Версия jdk при этом обязана быть 5. 0 или больше.

8 декабря 2014 года android studio признана компанией google официальной средой разработки под ОС android.

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

2.7 JavaScript

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

Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса. На JavaScript оказали воздействие почти все языки, при создании была поставлена цель сделать язык схожим на Java, но при этом лёгким для применения не программистами. Языком JavaScript не владеет какая-либо компания или организация, что различает его от ряда языков программирования, используемых в веб-разработке.

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

Comet — обширное понятие, описывающее устройство работы веб-приложений, использующих постоянные http-соединения, что дозволяет веб-серверу посылать данные браузеру без дополнительного запроса со стороны браузера. Для таковых приложений употребляются технологии, конкретно поддерживаемые браузерами. В частности, в них обширно употребляется javascript.

Javascript обширно употребляется в браузерных операционных системах. Так, кпримеру, начальный код indradesktop webos на 75 % состоит из javascript, код браузерной операционной системы intos — на 70 %. Доля javascript в исходном коде eyeos — 5 %, но и в рамках данной операционной системы javascript играет главную роль, участвуя в визуализации на клиенте и являясь нужным механизмом для коммуницирования клиента и сервера.

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

Нынешние сайты используют JavaScript. Это основной язык для создания интерактивности сайта или построения пользовательских интерфейсов с одним из десятка популярных JavaScript-фреймворков.

2.8 C#

Создан в 1998—2001 годах командойинженеров под начальством Андерса Хейлсберга в фирме Microsoft.

C# принадлежит к семье языков С-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык содержит статическую типизацию, поддерживает полиморфизм, перегрузку операторов, делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

C # считается основным языком для разработки на платформах и сервисах Microsoft. Будь то создание нынешних веб-приложений с использованием Azure и .NET, приложений для " девайсов " Windows или мощных " настольных " приложений для бизнеса, C# — самый быстрый метод использовать всё, что может предоставить Microsoft. Так же это и один из основных языков движка для создания игр Unity.

2.9 С++

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

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

Синтаксис С++ унаследован от языка С. Одним из принципов разработки было сохранение совместимости с С. Тем не менее, С++ не является в строгом смысле надмножеством С; очень много программ, какие имеют все шансы одинаково удачно транслироваться как компиляторами c, так и компиляторами С++, достаточно велико, но не подключает все вероятные программы на С.

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

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

2.10 C

C — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах. Первоначально был изобретен для реализации ОС unix, но, потом, был перенесён на остальные платформы.

Согласно дизайну языка С, его конструкции близко сопоставляются обычным машинным инструкциям, благодаря чему он отыскал применение в проектах, для которых был характерен язык ассемблера, в том числе как в ОС, так и в разном прикладном ПО для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования С оказал немаловажное воздействие на формирование промышленности программного обеспечения, а его синтаксис стал основой для таковых ЯП, как c++, c#, java и objective-c.

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

Почему язык c все еще известен? Из-за размера: маленький, стремительный и мощнейший. Если вы разрабатываете программное обеспечение для встраиваемых систем, работаете с системными ядрами или элементарно желаете получить из имеющихся под рукою ресурсов всё до последней капли, С — то, что необходимо.

2.11 Python

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

Разработка языка python была начата в конце 1980-х годов сотрудником голландского института cwi Гвидо ван Россумом.

Эталонном реализацией python является интерпретатор cpython, поддерживающий большинство активно используемых платформ.

Python — активно развивающийся язык программирования, новейшие версии выходят приблизительно раз в два с половиной года. Вследствие этого и неких остальных обстоятельств на python отсутствуют стандарт ansi, iso или остальные официальные стандарты, их роль исполняет cpython.

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

Python может сделать практически все Веб-приложения, пользовательские интерфейсы, анализ данных, статистика — для какой-никакой бы задачи вам не предстояло отыскать решение, в python, быстрее всего, отыщется пригодный фреймфорк. Совсем не так давно учёные пришли к выводу, что python стильно использовать в качестве главного инструмента для обработки гигантских объёмов данных фактически в хоть какой отрасли.

2.12 Visual Basic

Microsoft visual basic — язык программирования, а также интегрированная среда разработки программного обеспечения, разрабатываемое компанией microsoft. Язык visual basic унаследовал дух, стиль и частично синтаксис собственного предка — языка basic, у которого имеется немало диалектов. В то же время visual basic соединяет в себе процедуры и составляющие объектно-ориентированных и компонентно-ориентированных языков программирования. Интегрированная среда разработки vb включает инструменты для зрительного проектирования пользовательского интерфейса, редактор кода с возможностью intellisense и подсветкой синтаксиса, а также инструменты для отладки приложений.

Visual basic также является неплохим средством стремительной разработки (rad) приложений баз данных для операционных систем семейства microsoft windows. Множество готовых компонентов, поставляемых совместно со средой, призваны посодействовать программисту, сходу же приступить разрабатывать бизнес-логику приложения, не отвлекая его внимание на написание кода пуска программы, подписки на события и остальных механизмов, какие vb реализует автоматом

Ключевой язык .Net-платформы, visual basic позволяет создавать приложения для помощи бизнеса, а также автоматизировать массивные приложения msoffice.

2.13 R

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

Язык формировался как подобный языку s, разработанному в bell labs, и является его другой реализацией, хотя меж языками имеется значительные отличия, но в большинстве своём код на языке s работает в среде R. Изначально R был изобретен сотрудниками статистического факультета Оклендского университета Россом Айхэкой и Робертом Джентлменом (первая буква их имён — R), на момент 2011 года язык и среда поддерживаются и развиваются организацией R foundation.

R обширно употребляется как статистическое программное обеспечение для анализа данных и практически стал эталоном для статистических программ.

В R употребляется интерфейс командной строки, хотя доступны и некоторое количество графических интерфейсов юзера, к примеру пакет R commander, rkward, rstudio, weka, rapid miner, knime, а также средства интеграции в офисные пакеты.

В 2010 году R вошёл в перечень фаворитов конкурса журнала infoworld в номинации на наилучшее открытое программное обеспечение для разработки приложений.

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

2.14 Swift

Swift — открытый мультипарадигмальный компилируемый язык программирования общего назначения.

Создан компанией apple в первую очередность для разработчиков ios и os x. Swift работает с фреймворками cocoa и cocoa touch и совместим с главный кодовой базой apple, написанной на objective-c.

Swift задумывался как наиболее простой для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему objective-c. Программы на swift компилируются при помощиllvm, входящей в интегрированную среду разработки xcode 6 и больше. Swift может применять рантайм objective-c, что делает возможным внедрение обоих языков (а также С) в рамках одной программы.

Старший вице-президент по разработке программного обеспечения apple Крейг Федериги во время анонса этого продукта заявил, что язык программирования swift был заложен ещё в платформе next (ОС nextstep выпускалась в 1989—1995 годах), которая стала основой для os x, а потом и ios.

Разработка текущего варианта языка swift началась в 2010 году Крисом Латтнером, управляющим отдела разработки инструментов для создания программного обеспечения apple и одним из главных разработчиков llvm. Swift заимствовал идеи из " objective-c, rust, haskell, ruby, python, c#, clu, и еще из стольких почтивсех языков, что трудно перечислить " .

2 июня 2014 года на конференции wwdc swift был официально представлен совместно с бесплатным руководством по использованию языка объёмом в 500 страниц, доступным на сервисе " ibook store " .

Версия swift 1. 0 была выпущена 9 сентября 2014 года, совместно с " gold master " версией xcode 6. 0 для ios.

8 июня 2015 года фирма apple огласила о выпуске новейшей версии swift 2. 0, которая получила наиболее высшую продуктивность, новое api обработки ошибок, усовершенствования синтаксиса языка, а также функцию проверки доступности функций swift для целевых ОС.

3 декабря 2015 года была выпущена бета версия swift 3. 0 с помощью операционных систем os x, ios и linux и лицензированная под открытой лицензий apache 2. 0 license with a runtime library exception.

10 апреля 2016 года google огласила о намерениях изготовить swift так называемым " первым языком " для android. Язык программирования очень стремительный, поэтому google планирует им воспользоваться. Скорее всего, это уменьшит численность приложений, которые поначалу выходят на ios, а позже на android.

Swift заимствовал достаточно многое из objective-c, но он определяется не указателями, а типами переменных, которые обрабатывает компилятор. По подобному принципу работают почтивсе скриптовые языки. В то же время, он предоставляет разработчикам почтивсе функции, какие доэтого были доступны в c++ и java, такие как определяемые наименования, так именуемые обобщения и перегрузка( overloading) операторов.

Часть функций языка выполняется скорее по сравнению с иными подобными языками. Например, сортировка комплексных объектов выполняется в 3, 9 раз скорее, чем в python, и практически в 1, 5 раза скорее, чем в objective-c.

Код, написанный на swift, может работать совместно с кодом, написанным на языках программирования c, objective-c в рамках одного и такого же проекта.

За менее чем год существования язык программирования swift привлёк интерес разработчиков во всём мире как новейший, простой и стремительный способ разработки для операционных систем os x и ios. Широкие возможности и дружественный синтаксис swift разрешают составить очередное убойное приложение для пользователей apple.

Глава 3. Понятие, назначение и составные элементы систем программирования

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

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

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

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

Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.

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

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

3.1 Машинно-ориентированные системы программирования

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

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

- высочайшее качество создаваемых программ;

- возможность применения конкретных аппаратных ресурсов;

- предсказуемость объектного кода и заказов памяти;

- низкая скорость программирования;

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

3.1.1 Машинный язык

В таких системах программирования отдельный комп. владеет собственный определённый машинный язык. Некоторые семейства ЭВМ (к примеру, ЕС ЭВМ, ibm/ 370/ и др.) имеют единый машинный язык для ЭВМ разнообразной мощности. В новейших моделях ЭВМ намечается тенденция к увеличению внутренних языков машинно-аппаратным путём. Машинный язык является внутренним языком ЭВМ и представляет собой систему руководств и данных, какие не требуют трансляции и имеют все шансы конкретно интерпретироваться и осуществляться аппаратными средствами ЭВМ.

3.1.2 Системы символического кодирования

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

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

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

3.1.3 Автокоды

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

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

Макрокоманды переводятся в машинные команды 2-мя способами – расстановкой и генерированием. Развитые автокоды получили название Ассемблеры.

3.1.4 Макрос

В таких системах язык, являющийся средством для замены последовательности знаков описывающих выполнение требуемых действий ЭВМ на наиболее сжатую форму – именуется Макрос.

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

Макрос одинаково может работать, как с программами, так и с данными.

3.2 Машинно-независимые системы программирования

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

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

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

3.2.1 Процедурно-ориентированные системы

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

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

Процедурных языков чрезвычайно немало, к примеру:

- Фортран, Алгол – языки созданные для решения математических задач;

- Simula, Слэнг – для моделирования;

- Лисп, СНОБОЛ – для работы со списочными структурами.

3.2.2 Проблемно-ориентированные системы

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

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

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

3.2.3 Диалоговые языки

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

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

Это дозволяет выполнить требуемые редакционные конфигурации в объектной программе.

3.2.4 Непроцедурные языки

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

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

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

ЗАКЛЮЧЕНИЕ

Новые языки проще в применении. Большинство современных языков имеет интегрированную среду разработки и поддерживает структурное программирование. Для графических операционных систем, к примеру windows, требуются наиболее трудные средства программирования, но с поддержкой простых в обращении языков, таковых как visual basic, процесс облегчается так, что даже молодые программисты имеют все шансы работать с графической средой.

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

В 1970-х самым известным языком всеобщего внедрения был pascal, но в 1980-х его использование резко сократилось.

Язык С, разработанный компанией bell laboratories, является чрезвычайно действенным, но низкоуровневым языком программирования. Язык С — это основа современных языков.

Самым огромным плюсом языка С++ над его предком является помощь объектно-ориентированного программирования.

Visual basic, преемник языка basic, гарантирует лучшую базу программирования для молодых.

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

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

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

- Смещение акцентов от частного (программирование деталей), к общему (программирование наиболее больших компонент);

- Развитие и улучшение инструментария программиста (языков программирования высокого уровня и рабочей среды);

- Возрастание трудности программных и информационных систем;

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

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

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Джеймс Р. Грофф, Пол Н. Вайнберг, Эндрю Дж. Оппель. SQL: полное руководство, 3-е издание — М.: «Вильямс», 2014. — 960 с.

2. Мэтт Зандстра. PHP: объекты, шаблоны и методики программирования — 3-е издание. — М.: «Вильямс», 2010. — С. 560

3. Мэтт Нойбург. Программирование для iOS 7. Основы Objective-C, Xcode и — М.:«Вильямс», 2014. — 384 с.

4. Прата С. Язык программирования C (C11). Лекции и упражнения, 6-е издание — М.: Вильямс, 2015. — 928 с

5. Сиддхартха Рао. Освой самостоятельно C++ за 21 день, 7-е издание (C++11) — М.: «Вильямс», 2013. — 688 с.

6. Райан Сайлер, Джефф Споттс. Использование Visual Basic 6. Классическое  — М.: Вильямс, 2007. — 832 с.

7. Джон Скит. C# для профессионалов: тонкости программирования, 3-е издание, новый  — М.: «Вильямс», 2014. — 608 с.

8. Ларри Уолл, Том Кристиансен, Джон Орвант. Программирование на Perl — М.: O’Reilly, «Символ», 2008. — 1145 с.

9. Д. Флэнаган, Ю. Мацумото. Язык программирования / пер. с англ. Н. Вильчинский. — 1-е изд. — СПб.: Питер, 2011. — 496 с.

10. Шилдт Г. C: полное руководство, классическое издание — М.: Вильямс, 2010. — С. 704.

11. Герберт Шилдт. Java 8. Полное руководство, 9-е — М.: «Вильямс», 2015. — 1376 с.