Исследовательская работа “Языки программирования и их значение для современного мира”
Автор: Хороших Игорь Алексеевич
Место работы/учебы: МБОУ «СОШ № 42», г.Курск, 9 класс
Научный руководитель: Абакумова Ольга Николаевна, учитель информатики
Аннотация
Со времени появления первых программируемых машин было создано более восьми тысяч языков программирования. Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты могут владеть десятком и более разных языков программирования.
Цели данного исследования:
Задачи исследования:
Объект исследования – языки программирования.
Гипотеза: возможно ли создать игру при помощи языков программирования.
Актуальность исследования обусловлена тем, что сейчас широко распространены языки программирования, с их помощью создано всё программное обеспечение компьютера, а также является востребованной такая профессия, как программист, практически во всех сферах деятельности.
Практическая значимость: исследование предоставляет дополнительный материал об истории развития языков программирования, способствует повышению интереса к программированию, показывая, что даже школьник может создавать свои программные продукты, которые могут быть созданы для разнообразных целей.
Результаты
Результатом исследования стало собственное прикладное программное обеспечение – игра, созданная с помощью Game Maker. Данная разработка носит как развлекательный, так и развивающий характер, поскольку компьютерные игры в разной степени развивают координацию и сосредоточенность, сообразительность, логическое мышление, творческие способности.
Важно, что этот класс игры (аркадная) с простой графикой и звуком наименее опасен и не вызывает длительной привязанности.
Цели и задачи исследования были достигнуты, гипотеза подтверждена.
Содержание работы
Если прикрепленный файл не отображается, перегрузите, пожалуйста, страницу
Дата публикации работы: 23.08.2020
Конкурс, в котором участвует работа
Смотреть похожие работы
Мы, учащиеся 9 класса, стоим на пороге профессионального самоопределения. С 8-го класса нас активно знакомили со средними специальными учреждениями образования города Могилёва, а посещение факультативного занятия «Профессия моей мечты» в 9 классе заста …
В настоящее время при изучении математики все чаще возникает проблема восприятия изучаемого учебного материала, имеющего абстрактный характер, что в дальнейшем приводит к трудностям в решении различных задач. Авторы считают данное исследование современ …
Развитие нашего общества не возможно без современных IT-технологий. Для разработки любого технологического процесса сейчас используют компьютерные программы. Поэтому развитие экономики напрямую связано с качественной и быстрой работой компьютера. Суть …
Одной из основных проблем, изученных в данной работе, является развитие и усовершенствование физических качеств человека. Актуальность данного исследования состоит в том, что развитие своих физических качеств всегда будут актуальны для любого возраста. …
Исследовательская работа на тему: «Исследование возможностей языков программирования»
Муниципальное казенное общеобразовательное учреждение
«Липковский центр образования № 1»
муниципального образования Киреевский район
Восьмая районная научно-практическая конференция
«Шаги в науку – 2016»
Секция: № 2 «Информационные технологии в образовании»
Исследовательская работа на тему:
Исследование возможностей различных языков программирования
Автор работы: Хасанов Жасур Афсаттарович
Общеобразовательное учреждение: МКОУ «Липковский центр образования № 1»
Адрес ОУ: 301264, РФ Тульская область, г. Липки, ул. Комсомольская, д.2 «Б»
Куратор работы: Учитель информатики и ИКТ МКОУ «Липковский центр образования № 1» Харламова Мария Сергеевна
Контактный телефон: 48-5-34
Содержание
ВВЕДЕНИЕ
На современном этапе развития компьютерных технологий невозможно представить какого-либо высококвалифицированного специалиста, не владеющего информационными технологиями. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования.
Объектом исследования послужили языки программирования и история развития языков программирования.
Целью исследовательской работы является изучение классификации языков программирования и их развития.
1. Просмотреть общее сведения и уровни языков программирования.
2. Просмотреть историю развития языков программирования.
3. Сделать сравнение современных языков программирования.
1. Ознакомления с языками программирования.
2. Рассмотрение истории развития языков программирования.
3. Сравнение современных языков программирования.
В первой главе рассматриваются общие сведения о языках программирования и история развития их.
Во второй главе рассматривается сравнение современных языков программирования.
1. Языки программирования
Можно сформулировать ряд требований к языкам программирования и классифицировать языки по их особенностям.
Основные требования, предъявляемые к языкам программирования:
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
1.1 История развития языков программирования
Расцвет второго поколения языков программирования пришелся на конец 50-х – начало 60-х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ.
Появление третьего поколения языков программирования принято относить к 60-м годам. В это время родились универсальные языки высокого уровня, с их помощью удается решить задачи из любых областей. Такие качества новых языков, как относительная простота, независимость от конкретного компьютера и возможность использования мощных синтаксических конструкций, позволили резко повысить производительность труда программистов. Понятная большинству пользователей структура этих языков привлекла к написанию небольших программ (как правило, инженерного или экономического характера) значительное число специалистов из некомпьютерных областей. Подавляющее большинство языков этого поколения успешно применяется и сегодня.
Сначала 70-х годов по настоящее время продолжается период языков четвертого поколения. Эти языки предназначены для реализации крупных проектов, повышения их надежности и скорости создания. Они обычно ориентированы на специализированные области применения, где хороших результатов можно добиться, используя не универсальные, а проблемно-ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Как правило, в эти языки встраиваются мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой на языках младших поколений потребовались бы тысячи строк исходного кода.
2. Обзор современных языков программирования
Каждая команда, записанная на языке программирования, имеет определенное значение, то есть заставляет компьютер выполнять те или иные действия. Правила, определяющие смысл команд, называются семантикой языка. Например, команда CLS вызывает очистку экрана.
Программа, написанная на языке программирования, состоит из команд (операторов), задающих последовательность действий. Эти действия выполняются над некоторыми объектами. Объектами могут быть числа, текстовые строки, переменные и другие. Языки отличаются друг от друга множеством допустимых объектов и набором операций, которые можно выполнять над этими объектами.
Программа, написанная на языке программирования, представляет собой просто текст. Чтобы компьютер мог выполнять команды, содержащиеся в этой программе, надо перевести программу в набор понятных компьютеру инструкций, записанных в двоичной форме (в код). Такой перевод называется трансляцией.
По способу трансляции языки делятся на:
В компиляторах перевод всего текста программы в код осуществляется сразу, и создаются исполняемый файл, который затем можно неоднократно запускать.
В интерпретаторах при запуске программы каждая ее строчка последовательно переводится в код и выполняется; затем переводится в код и выполняется другая строчка, и так далее.
По уровню (особенностям построения) языки делятся на:
Программисту не надо было больше вникать в хитроумные способы кодирования команд на аппаратном уровне. Более того, зачастую одинаковые по сути команды кодировались совершенно различным образом в зависимости от своих параметров.
Вместе с тем, переход к новому языку таил в себе и некоторые отрицательные (по крайней мере, на первый взгляд) стороны. Становилось почти невозможным использование всяческих хитроумных приемов сродни тем, что упомянуты выше.
Кроме того, здесь впервые в истории развития программирования появились два представления программы: в исходных текстах и в откомпилированном виде. Сначала, пока ассемблеры только транслировали мнемоники в машинные коды, одно легко переводилось в другое и обратно, но затем по мере появления таких возможностей, как метки и макросы, дизассемблирование становилось все более и более трудным делом. К концу ассемблерной эры возможность автоматической трансляции в обе стороны была утеряна окончательно. В связи с этим было разработано большой количество специальных программ-дизассемблеров, осуществляющих обратное преобразования, однако в большинстве случаев они с трудом могут разделить код и данные. Кроме того, вся логическая информация (имена переменных, меток и т.п.) теряется безвозвратно. В случае же задачи о декомпиляции языков высокого уровня примеры удовлетворительного решения проблемы и вовсе единичны.
Каждый оператор языка представляет собой мнемоническое (условное) обозначение машинной команды. Естественно, что каждый тип процессора имеет свой набор команд, а значит, свой ассемблер. Ассемблеры используются для создания драйверов, программирования различных устройств, а также для написания фрагментов программ, где очень важно время выполнения (так как на ассемблере можно написать максимально эффективную программу.
Иногда их делят на процедурно-ориентированные и объектно-ориентированные, но в настоящее время граница между этими видами стерлась. Эти языки используются чаще всего для решения самых разнообразных задач. И хотя каждый из языков имеет свои особенности, что делает его наиболее эффективными для решения определенного вида задач, но в принципе для решения любой задачи можно выбирать любой язык программирования.
Среди универсальных языков программирования в настоящее время наиболее распространены:
2.1 Ада
Начнем с языка Ada. Этот язык был создан в 1979—1980 годах в результате проекта, предпринятого Министерством обороны США с целью разработать единый язык программирования для встроенных систем (то есть систем управления автоматизированными комплексами, функционирующими в реальном времени). Имелись в виду, прежде всего, бортовые системы управления военными объектами (кораблями, самолётами, танками, ракетами, снарядами и т. п.). Перед разработчиками не стояло задачи создать универсальный язык, поэтому решения, принятые авторами Ады, нужно воспринимать в контексте особенностей выбранной предметной области. Язык назван в честь Ады Лавлэйс. Также этот язык имеет массу особенностей, среди них:
С момента появления Ада подверглась критике некоторых признанных авторитетов в области разработки языков программирования, в первую очередь — за сложность синтаксиса и большой объём. В частности, язык критиковали Чарльз Хоар и Никлаус Вирт (участвовавшие со своим проектом в данном конкурсе, но выбывшие после первого этапа), а также Эдсгер Дейкстра.
Фото №3 “ английский учёный, специализирующийся в области информатики Чарльз Хоар ”
Ада — это структурный, модульный, объектно-ориентированный язык программирования, содержащий высокоуровневые средства программирования параллельных процессов. Синтаксис унаследован от языков типа ALGOL или Pascal, но расширен, а также сделан более строгим и логичным. Ада — язык со строгой типизацией, в нём исключена работа с объектами, не имеющими типов, а автоматические преобразования типов сведены к абсолютному минимуму.
Для удовлетворения требованиям надёжности язык построен таким образом, чтобы как можно большее количество ошибок обнаруживалось на этапе компиляции. Кроме того, одним из требований при разработке языка была максимально лёгкая читаемость текстов программ, даже в ущерб лёгкости написания. Результатом такого подхода стал несколько «тяжеловесный» синтаксис и множество ограничений, часто воспринимаемых непрофессиональными программистами как «глупые» и «ненужные».
Язык Ада используется в США и Европе при разработке сложных больших проектов, главным образом, встроенных систем, причём, далеко не только в военных приложениях.
2.2 Basic
Теперь я бы хотел поговорить о Basic. Он был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени.
Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего как язык для домашних компьютеров.
При проектировании языка использовались следующие восемь принципов. Новый язык должен:
1.Быть простым в использовании для начинающих
2.Быть языком программирования общего назначения
3.Предоставлять возможность расширения функциональности, доступную опытным программистам
5.Предоставлять ясные сообщения об ошибках
6.Быстро работать на небольших программах
7.Не требовать понимания работы аппаратного обеспечения
8.Защищать пользователя от операционной системы
Язык был основан частично на Фортран II и частично на Алгол-60, с добавлениями, делающими его удобным для работы в режиме разделения времени и, позднее, обработки текста и матричной арифметики. Первоначально Бейсик был реализован на мейнфрейме GE-265 с поддержкой множества терминалов. Вопреки распространённому убеждению, в момент своего появления это был компилируемый язык.
Синтаксис языка напоминает Fortran, и многие элементы — явные заимствования из него. Язык задумывался для обучения, поэтому его конструкции максимально просты. Как и в других языках программирования, ключевые слова взяты из английского языка. Основных типов данных два: строки и числа. С появлением версии Visual Basic, а также различных его модификаций (таких как VBA), в языке появились многие другие типы данных и дополнения, типичные для современных языков программирования (например, такие, как объектная модель). Объявление переменных не требует специальной секции (в отличие, например, от Паскаля). Объявление переменной — это первое её использование.
Ранние версии Бейсика (такие как BASICA, GW-BASIC) существенно отличаются от современных диалектов и сегодня практически не используются.
Бейсик подвергается жёсткой критике за то, что его простота и бесструктурность поощряют порочные методики и привычки программирования, которые могут быть уместны при создании малых программ, но способны привести к краху крупных проектов.
Одной из «визитных карточек» Эдсгера Дейкстры стало высказывание: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Однако, это высказывание цитируется вне контекста, в котором Дейкстра подверг критике и многие другие популярные в то время языки.
Кроме того, критики Бейсика часто игнорируют тот факт, что он создавался в качестве отнюдь не инструмента профессиональной разработки сложных программ, а средства, с помощью которого студенты-непрограммисты смогут писать простейшие программы. Если же говорить о современных диалектах и реализациях Бейсика, то они далеко ушли от первоначальной формы языка, являются более структурированными и сопоставимы по возможностям с такими языками, как Си, Паскаль и т. п.
2.3 C Sharp
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.
Переняв многое от своих предшественников — языков C++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# не поддерживает множественное наследование классов (в отличие от C++).
2.4 Java
Язык программирования, который меня так же заинтересовал – Java. Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем, приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года.
Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.
Достоинство подобного способа выполнения программ — в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.
Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:
применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).
По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.
2.5 Классификация платформ Java
Внутри Java существуют несколько основных семейств технологий:
Java SE — Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
Java EE — Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например в мобильных телефонах, КПК, встроенных системах;
JavaFX — технология, являющаяся следующим шагом в эволюции Java как Rich Client Platform; предназначена для создания графических интерфейсов корпоративных приложений и бизнеса.
Java Card — технология предоставляет безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объемом памяти и возможностями обработки.
2.6 Применения платформы Java
Следующие успешные проекты реализованы с привлечением Java (J2EE) технологий: RuneScape, Amazon, eBay, Yandex (неоднозначная информация в отношении Java), LinkedIn, Yahoo!.
Следующие компании в основном фокусируются на Java (J2EE) технологиях: SAP, IBM, Oracle. В частности, СУБД Oracle включает JVM как свою составную часть, обеспечивающую возможность непосредственного программирования СУБД на языке Java, включая, например, хранимые процедуры.
2.7 Производительность
Программы, написанные на Java, имеют репутацию более медленных и занимающих больше оперативной памяти, чем написанные на языке Си. Тем не менее, скорость выполнения программ, написанных на языке Java, была существенно улучшена с выпуском в 1997—1998 годах так называемого JIT-компилятора в версии 1.1 в дополнение к другим особенностям языка для поддержки лучшего анализа кода (такие как внутренние классы, класс StringBuffer, упрощенные логические вычисления и т. д.). Кроме того была произведена оптимизация виртуальной машины Java — с 2000 года для этого используется виртуальная машина HotSpot. В настоящее время[уточнить], код Java 2.0 приблизительно лишь в 2 раза медленнее кода, написанного на языке Cи.
Некоторые платформы предлагают аппаратную поддержку выполнения для Java. К примеру, микроконтроллеры выполняющие код Java на аппаратном обеспечении вместо программной JVM, а также основанные на ARM процессоры, которые поддерживают выполнение байткода Java через опцию Jazelle.
автоматическое управление памятью;
расширенные возможности обработки исключительных ситуаций;
богатый набор средств фильтрации ввода/вывода;
набор стандартных коллекций, таких как массив, список, стек и т. п.;
наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);
встроенные в язык средства создания многопоточных приложений;
параллельное выполнение программ.
2.8 Pascal
Существуют многочисленные реализации языка практически для всех машинных архитектур, разработаны десятки диалектов и проблемно-ориентированных расширений языка Pascal.
Фото №7 “ швейцарский учёный, специалист в области информатики
Николаус Вирт ” из сети интернет
Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Первоначально язык компилировался в байт-код, подобно языку Java.
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком.
Тем не менее, первоначально язык обладал множеством недостатков: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Необходимо заметить, что многие перечисленные недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, основным языком программирования в академической среде 70-х был Фортран, обладавший гораздо более существенными недостатками, и Паскаль представлял собой значительный шаг вперед.
Автор языка понимал недостатки созданного им языка, перестал его развивать и разработал языки Модула-2 и Оберон.
Тем не менее, достоинства языка заставляли многие коммерческие и некоммерческие организации разрабатывать системы программирования на основе языка Паскаль.
Из числа последних выделяется фирма Borland, Turbo Pascal (затем Borland Pascal) которой был значительно расширен, были устранены многие недостатки языка, добавлены новые возможности. Язык стал богаче, но одновременно, потерял переносимость и общность.
Важным шагом в развитии языка, является появление свободного языка Паскаль GNU Pascal, который не только вобрал в себя черты других Паскалей, не только позволил наконец полностью отказаться от «грязных» приемов программирования, особенно присущих, скажем, Turbo Pascal, но и обеспечил черезвычайно широкую портабельность написанных на нем программ (более 20 различных платформ, под более чем 10 различными операционными системами).
В настоящий момент пользуются популярностью такие версии языка как TMT Pascal, Free Pascal и GNU Pascal. Продолжает использоваться и Borland Pascal. Развитием языка Borland Pascal является Object Pascal — версия языка Паскаль расширенная средствами объектно-ориентированного программирования. Последние версии Borland Pascal лежат в основе среды программирования Delphi.
В России разработан язык программирования Глагол, который имеет близкую к Паскалю идеологию, но в отличие от него изначально спроектирован на использование только русских служебных слов.
Таким образом, в наше время существует множество языков, и у каждого из них свои особенности. Но из всех мне больше всего понравился C#, по производительности он опережает Java, по удобству – Basic. В наше время каждый программист может найти для себя тот, с которым ему будет наиболее удобно работать.
ЗАКЛЮЧЕНИЕ
Изобретение языков программирования высшего уровня, а также их постоянное совершенствование и развитие, позволило человеку не только общаться с машиной и понимать ее, но использовать ЭВМ для сложнейших расчетов в области самолетостроения, ракетостроения, медицины и даже экономики.
На сегодняшний день, любое среднее и крупное предприятие, имеет в своем штате группу программистов, обладающими знаниями программирования различными языками, которые редактируют, изменяют, и модифицируют программы используемыми сотрудниками предприятия. Это говорит о том, что на рынке труда пользуются спросом обладающими знаниями и опытом работы с различными языками программирования.
Несмотря на то, что современный уровень развития языков программирования находятся на высоком уровне, тенденция их развития, а также развития информационных технологий в целом, складывается таким образом, что можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста.