Файл: Современные языки программирования (Общие понятия языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 156

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

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

1.1 Общие понятия языков программирования

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

1.3 Программы

1.4 Компиляция

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

1.6 Функции в языках программирования

1.7 Переменные, константы

Глава 2 Язык разметки гипертекста HTML и язык стилей CSS

2.1 История HTML

2.2 Как работает HTML

2.3 Язык стилей CSS

2.4 Типы стилей

2.5 Виды веб-сайтов

Глава 3 JavaScript

3.1 История создания

3.2 Возможности JavaScript

3.3 Node.js

3.3.1 Скорость выполнения программ

3.3.2 Асинхронность

3.4 Классификация типов данных

3.5. Библиотеки и фреймворки JavaScript

Глава 4 PHP

4.1 История создания

4.2 Работа сценария PHP

4.3 Основы синтаксиса языка PHP

Глава 5 Java

5.1 История создания

5.2 Влияние Java на развитие интернета

5.3 Основные свойства Java

Глава 6 C(Си) и С++

6.1 История создания Си

6.2 С++

Заключение

Список использованной литературы

Введение

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

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

Целью моей курсовой работы является изучение материалов по современным языкам программирования, их многообразию, рассмотрение основных понятий, связанных с языками программирования, а также историю их создания, развития и современное использование. Также в своей работе мне хотелось бы подробно разобрать несколько современных языков, таких как Python, Java, JavaScript, PHP, C, C++, а также объектно-ориентированное программирование и типы данных в языках программирования.

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

1.1 Общие понятия языков программирования

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

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

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

Синтаксис – это порядок слов, форма записи; правила построения сообщений, комбинирования символов и слов.

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

Современные языки программирования, такие как С, С++, C#, Java, Python, PHP, JavaScript и другие, до настоящего времени остаются наиболее распространенным и мощным инструментом у программистов, занимающихся разработкой как системного, так и прикладного программного обеспечения. С появлением новых задач и потребностей функциональные возможности этих языков постоянно расширяются путем создания все более совершенных версий.


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

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

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

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

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

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

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

процедурные

непроцедурные

декларативные

Высокого уровня (машинно-независимые)

Низкого уровня (машинно-зависимые)

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

Функциональные

логические

Java, C++, Visual Basic, JavaScript, Delphi

Assembler

Fortran, Basic, Pascal, C (машинно-ориентированный)

Lisp

Prolog

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

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


1.3 Программы

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

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

На самом глубоком уровне компьютер оперирует только цифрами 0 и 1, это так называемый двоичный код, а единицы и нули называются битами, от “binary digit” – “двоичная цифра”. На сегодняшний день, в большинстве случаев, используется один из вариантов юникода UTF8, он включает в себя знаки почти всех языков мира.

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

1.4 Компиляция

Часто, для запуска и выполнения программы, необходимо транслировать ее из текстовой формы, понятной для человека, в машинную форму, понятную компьютеру. Эту функцию выполняет особая программа, которая называется компилятором. То, что изначально пишет программист, называется исходным кодом или текстом программы, а то, что выполняет компьютер, называется выполняемым, объектным или машинным кодом. Файлы с объектным кодом имеют расширение .obj в системе Windows .o в системе Unix. Следовательно, слово код, если не указано иное, подразумевает исходный код без комментариев, так как комментарии предназначены для людей, и компилятор не переводит их в объектный код.

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

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


Рис 2 компиляция и обработка кода

Исходный код

Модифицированная исходная программа

препроцессор

Объектный код

компилятор

Машинный код

машинный код

Библиотечные файлы.

Перемещаемые объектные файлы

Сборщик/компоновщик

Выбор компилятора при разработке программ зависит как от ОС, архитектуры ЭВМ, а также от языка программирования и его версии. Наиболее популярным компилятором при разработке приложений для ОС Windows является MSVC++ разработанный компанией Microsoft. Что же касается Unix подобных систем, то тут чаще всего используется пакет компиляторов GCC.

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

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

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

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

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


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

Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам и переменным). Инкапсуляция делает некоторые из компонент доступными только внутри класса.

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

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

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

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

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

1.6 Функции в языках программирования

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