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



МИНИСТРЕСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

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

Реферат

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

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

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

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

Интересную статистику на 2017 год представили специалисты одного из новостных сайтов – рисунок 1.

Рисунок  – Самые востребованные профессии

На этом же сайте размещен топ-10 самых высокооплачиваемых профессий – рисунок 2.

Рисунок  – Самые высокооплачиваемые профессии

Очевидно, что работать вit-сфере – престижно и выгодно.

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

КРАТКАЯ СПРАВКА ОБ ИСТОРИИ ПРОГРАММИРОВАНИЯ

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

Эволюция языков программирования тесно связана с историей развития вычислительной техники. Схематично это представлено на рисунке 3.

Рисунок  - Базовые отличия поколений ЭВМ

Интересно, что человек, которого называют первым программистом, жил задолго до появления первого компьютера. Это – дочь известного английского поэта, лорда Байрона – графиня Ада Лавлейс (рисунок 4). Онаизвестнапрежде всего созданием описания вычислительной машины, проект которой был разработан Чарльзом Бэббиджем. Составила первую в мире программу. Ввела в употребление термины «цикл» и «рабочая ячейка», которые используются до сих пор. В ее честь назван один из универсальных высокоуровневых языков программирования –Ada.

Рисунок  – Первый программист графиня Ада Лавлейс

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

1946 год, ЭНИАК (ENIAC) – электронный цифровой интегратор и компьютер - его считают первой ЭВМ. Разработан для расчетов таблиц стрельбы армии США.

Элементная база-17 468 радиоламп 16 различных типов. Вес компьютера – 27 тонн. Память – 20 число- слов. Тактовая частота – 100 КГц. Из-за огромного числа ламп, которые часто перегорали, компьютер не мог работать подряд более 20 часов. Но за эти 20 часов ЭНИАК выполнял месячный объём работы механических вычислителей. Для перепрограммирования ENIAC нужно было перекоммутировать его заново. Первый компьютер представлен на рисунке5.

Рисунок - Первый компьютерENIAC

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

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

Рисунок  – Поколения ЭВМ

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

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

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

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

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

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

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

Объектно-ориентированное программирование (ООП)

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

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

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

Следующими важнейшими принципами ООП являются наследование и полиморфизм.

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

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

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

90-х годов многие объектно–ориентированные языки реализуются как системы визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов. К объектно – ориентированным системам визуального проектирования относятся Visual Basic, Delphi, C++ Builder, Visual C++.

Язык VBA (Visual Basic for Application) –языкприложений Microsoft Office (Excel, Word, Power Pointидр).VBA соблюдает основной синтаксис языка и правила программирования языков Basic – диалектов, позволяет создавать макросы для автоматизации выполнения некоторых операций и графический интерфейс пользователя, интеграцию между различными программными продуктами.

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

К ним относятся функциональные и логические языки программирования.

Функциональное программирование- это способ составления программ, в которых единственным действием является вызов функции. В функциональном программировании не используется память, как место для хранения данных, а, следовательно, не используются промежуточные переменные, операторы присваивания и циклы. Ключевым понятием в функциональных языках является выражение. Программа, написанная на функциональном языке, представляет собой последовательность описания функций и выражений. Выражение вычисляется сведением сложного к простому. Все выражения записываются в виде списков. Первым языком стал язык Лисп (LISP, LIST Processing- обработка списков) создан в 1959г. Этот язык позволяет обрабатывать большие объемы текстовой информации.

Логическое программирование- это программирование в терминах логики.

В 1973 году был создан язык искусственного интеллекта Пролог (PROLOG) (Programming in Logic). Программа на языке Пролог строится из последовательности фактов и правил, затем формулируется утверждение, которое Пролог пытается доказать с помощью правил. Язык сам ищет решение с помощью методов поиска и сопоставления, которые в нем заложены. Логические программы не отличаются высоким быстродействием, так как процесс их выполнения сводится к построению прямых и обратных цепочек рассуждений разнообразными методами поиска.

Языки программирования баз данных.

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

Для обработки больших массивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL (Structured Query Language). Язык SQL –  это стандартный язык работы с реляционными базами данных.

Сегодня в мире ведущие производители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Практически в каждой СУБД имеется свой встроенный язык работы с БД. Так, например, в Oracle имеется встроенный язык PL/SQL, в Informix – INFORMIX 4GL, в Adabas – Natural и т.д.

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

Язык HTML (Hyper Text Markup Language) – универсальный язык разметки гипертекста, используемый для подготовки Web документов для Internet. Язык позволяет форматировать текст, добавлять графические образы, работать с таблицами и организовывать связь одного документа с другим с помощью механизма гиперссылок.

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

Язык PHP (1995-1997гг) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире.

Язык Tcl/Tk (конец 80-х годов) состоит из мощных команд, предназначенных для работы с абстрактными нетипизированными объектами и позволяет создавать программы с графическим интерфейсом.

Язык VRML (1994г) создан для организации виртуальных трехмерных интерфейсов в Интернете.

Язык XML. С 1996г идет работа над созданием универсального языка структуры документов. Может стать заменой языка HTML.

КРАТКИЙ ОБЗОР ПЕРЕДОВЫХ ТЕХНОЛОГИЙ

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

В сегодняшнем  мире наблюдается нашествие «умных вещей», более того – они уже становятся неотъемлемыми элементами жизни каждого современного человека.Даже маленькие дети ловко управляются с планшетами и мобильными телефонами.  Согласно статистическим данным, в октябре 2016 года количество подключений к сайтам с мобильных устройств по всему миру впервые превысило использование интернета со стационарных компьютеров и ноутбуков, составив 51,3% от общего использования интернета.

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

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

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

Рисунок  – График увеличения количества микропроцессорной техники

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

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

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

Выделение уникальных направлений в технологиях и методиках искусственного интеллекта довольно проблематично, поэтому в таблице 1 приведен стандартный подход.

Таблица  – Направления искусственного интеллекта

Проблемы

Пути решения

Автоматическое программирование

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

Сети Байезана  (Bayesian)

Построение сетей на основании вероятности

Решение проблемы ограничений

Решение переборных задач с помощью различных методик оптимизации поиска

Построение структуры знания

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

Обучение машин

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

Нейронные сети

Моделирование программ, которые имеют структуру, схожую с человеческим мозгом

Планирование

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

Поиск

Поиск пути от начальной точки к заданной цели

Краткое перечисление алгоритмов искусственного интеллекта:

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ОТЕЧЕСТВЕННЫХ И ЗАРУБЕЖНЫХ ТЕХНОЛОГИЙ

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

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

Рисунок  – Современный боевой робот. Россия

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

Робот позволяет дистанционно оперировать, проводить сложнейшие абдоминальные операции во Владивостоке, находясь в Москве.

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

Рисунок  – Оперирует робот-хирург. Россия

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

AlphaGo победил чемпиона мира по игре в Го

Го считается наиболее сложной профессиональной игрой, изобретенной человечеством. Она предлагает невероятное количество возможных действий, и во многом, как утверждают сами игроки, полагается на человеческую интуицию. Искусственный интеллект AlphaGo обучил себя игре, сыграв миллионы партий со своими копиями, и в марте 2016  года сумел победить чемпиона Ли Седоля в четырех партиях из пяти (рисунок 10).

Рисунок  – Компьютер побеждает человека в интеллектуальных играх

Самоуправляемая машина Tesla доставила в больницу человека с сердечным приступом

Беспилотные устройства являются предметом горячих дебатов по всему миру. Отчет Национального совета безопасности США указывает, что в 2015 году смертность на дорогах составила 1,3 случая на каждые 100 миллионов миль, пройденных обычными автомобилями, в то время как показатели Tesla – 130 миллионов пройденных миль и всего один зарегистрированный несчастный случай. При этом на счету автопилота как минимум одна спасенная жизнь – машина доставила своего хозяина Джошуа Нелли в больницу, когда в дороге у него случился внезапный сердечный приступ.

Роевой интеллект предсказал результаты Кентуккийского Дерби

В мае 2016 года искусственный интеллект UNU сумел успешно предсказать четверых победителей престижного конного состязания, причем, строго в порядке их финиширования. Этого не удалось сделать ни одному официальному эксперту по этим соревнованиям – таким образом, компьютер победил с высокой ставкой.UNU был разработан компанией Unanimous A.I. во главе со специалистом по человеко-машинному взаимодействию Луисом Розенбергом.

Microsoft AI на сегодняшний день понимает человеческую речь лучше самих людей

В октябре 2016 года Microsoft продемонстрировала, что AI впервые сравнялся с человеком в эффективности автоматического распознавания речи. Чтобы добиться этого результата, система компании использовала так называемые сверхточные и рекуррентные нейронные сети. Для подготовки к испытанию ей понадобилось 2000 часов записанных данных.

AI предсказал результаты президентских выборов в США

Итоги выборов в Америке оказались сюрпризом для многих, включая инсайдеров политической системы. Однако индийский стартап MogIA в Мумбаи уверенно предсказал победу Трампа. AI компании проанализировал 20 миллионов записей в социальных медиа и сумел определить реальные симпатии избирателей. И хотя многие эксперты остерегаются придавать победе MogIA слишком большое значение, объективно — данный интеллект сумел точно предсказать событие, которое оказалось неожиданностью для миллиардов людей.

Искусственный интеллект произвел революцию в диагностике онкологических заболеваний

Здравоохранение является одной из областей, в которых успехи AI имеют наибольшее практическое значение. В частности, суперкомпьютер IBM Watson уже сегодня способен замечать отклонения в здоровье человека, которые ускользают от внимания опытных диагностов. Статистически, примерно в 30 % случаев Watson ставит пациентам дополнительный диагноз, пропущенный врачами-людьми.

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

СПИСОКЛИТЕРАТУРЫ И ЭЛЕКТРОННЫХ ИСТОЧНИКОВ

  1. Аляутдинов М. А., Галушкин А. И., Казанцев П. А., Остапенко Г. П. Нейрокомпьютеры. От программной к аппаратной реализации. - М.: Телеком, 2016. - 152 c.
  2. Бхаргава А.  Грокаем алгоритмы. – СПб.: Питер, 2017. – 288 с.
  3. Джонс М.Т.Программирование искусственного интеллекта. - М.: БХВ-ДМК Пресс, 2015. - 312 c.
  4. Здор С. Е. Кодированная информация. От первых природных кодов до искусственного интеллекта.– Москва: Наука, 2012. - 168 c.
  5. Портал Техкульт. –Url:https://www.techcult.ru/technology/3816-dostizheniya-ai- Дата обращения 21.02.2018
  6. ПорталRuseBase. –Url:https://rb.ru/longread/russian-ai-startups/  - Дата обращения 21.02.2018
  7. Порталiot.ru – Новости интернета вещей. –Url:https://iot.ru/meditsina/glava-minzdrava-otechestvennykh-robotov-khirurgov-gotovy-proizvodit-seriyno - Дата обращения 21.02.2018




Похожие работы, которые могут быть Вам интерестны.

1. Способы перевода польских девербативов на словенский и русский языки

2. Культурно-исторические коды в романе Бориса Акунина «Любовник смерти» и их трансфер в переводах на английский и сербский языки

3. Организация программирования в Word с использованием встроенного языка VBA. Организация программирования в таблице Excel с использованием встроенного языка VBA

4. ПЕРЕМЕННЫЕ В ЯЗЫКАХ ПРОГРАММИРОВАНИЯ

5. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

6. ВИЗУАЛЬНАЯ СРЕДА ПРОГРАММИРОВАНИЯ КОНСПЕКТ

7. ОСНОВНЫЕ ПОНЯТИЯ, ТРЕБОВАНИЯ И ПРАВИЛА ПРОГРАММИРОВАНИЯ

8. Разработка программного комплекса на языке программирования С++

9. Автоматизированная информационная систему «Регистратура поликлиники» на языке программирования С++

10. Оперативное управление на основе решения задач линейного программирования