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

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

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

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

Добавлен: 01.04.2023

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

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

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

end

#комментарий

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

class XYZ

Создание класса, имя которого XYZ.

def f

Создание метод, имя которого f.

puts “The chosen one!”

Вывод строки на консоль. Команда puts позволяет вывести строку с последующим переходом на новую. Также существует похожая команда – print, но она выводит строку без последующего символа \n.

end

Ключевое слово при завершении метода def.

end

Ключевое слово при завершении класса XYZ.

Пройдем по основам языка программирования Ruby:

  1. В языке Ruby определены следующие основные типы данных:
  2. Boolean - хранит значение true (истина) или false (ложь).
  3. Fixnum – целочисленный тип до 230. Использует обычные арифметические команды процессора и ограничивает разрядность.
  4. Bignum - целочисленный тип более 230. Вычисляет с неограниченной точностью, доступной в оперативной памяти.
  5. Float – число с плавающей точкой.
  6. String – является классом и имеет большой выбор методов с манипуляцией сток.
  7. Symbols – неизменяемая строка. Записывается префиксом «:».
  8. Range – является классом и представляет непрерывную последовательность целых чисел от начального до конечного значения.
  9. В языке Ruby существуют бинарные операции (производятся над двумя операндами) и операции присваивания. К бинарным операциям относят: +, -, *, /, // (получение остатка от деления), ** (возведение в степень).

Операции присваивания позволяют присвоить результат операции первому операнду: += (сложение), -= (вычитание), *= (умножение), /= (деление), %= (остаток от деления), **= (возведение в степень).

  1. В языке программирования Ruby существуют следующие операции отношения: == (равно), > (больше, чем), < (меньше, чем), <= (меньше или равно), >= (больше или равно), != (не равно), <=> (комбинированный оператор сравнения. Возвращает 0, если первый операнд равен второму, 1, если первый операнд больше второго, и -1, если первый операнд меньше второго), === (используется в компоненте case при сравнении), equal? (проверяет переменные на один и тот же объект), eql? (проверяет переменные на принадлежность к одному классу и имеют ли они одинаковые значения).
  2. В языке программирования Ruby имеются условные конструкции:
  3. If – проверяет истинность условий, если проверка успешна, то выполняется блок.
  4. Else – выполняется, если условия в if не выполняется.
  5. Elsif - альтернативный вариант условий.
  6. Unless - проверяет ложность условий, если проверка успешна, то выполняется блок.
  7. Case - сравнивает выражение, заданное регистром, и выражение, указанное при использовании оператора «===», и выполняет код when.
  8. В языке программирования Ruby для выполнения некоторых действий множество раз в зависимости от условий используются циклы:
  9. while (выполняется, пока условие истинно),
  10. until (выполняется, пока условие ложно),
  11. for (выполняется код единожды для каждого элемента переменной),
  12. break (прерывание цикла до его завершения),
  13. next (переходит к следующей итерации внутреннего цикла),
  14. redo (перезапускает итерацию внутреннего цикла без проверки его состояния),
  15. retry (Ключевое слово retry позволяет повторить код в блоке. В сочетании с блоком rescue возможно использовать его для повторной попытки)
  16. В языке программирования Ruby существуют методы, использующиеся для объединения одного или нескольких повторяющихся операторов в один блок. Вызов метода def имя(параметры)…end. Методы должны быть определены до их вызова, иначе Ruby вызовет исключение для вызова неопределенного метода. Имена методов должны начинаться со строчной буквы. Если имя метода начнется с заглавной буквы, Ruby может подумать, что это константа и, следовательно, может неправильно анализировать метод. Самым распространенным является метод преобразования типов: to_i (преобразование в целочисленное число), to_f (преобразование в число с плавающей точкой), to_s (преобразование в строку), to_a (преобразование в массив).
  17. Язык программирования Ruby — это объектно-ориентированный язык. Каждое значение в Ruby — это объект, даже самые примитивные вещи: строки, числа и даже true и false. Даже сам класс является объектом, который является экземпляром класса Class. Класс используется для определения формы объекта, и он объединяет представление данных и методы для манипулирования этими данными в одну форму. Данные и методы в классе называются членами класса.
  18. В языке программирования Ruby существует способ группировки методов, классов и констант. Модули определяют пространство имен, «песочницу», в которой ваши методы и константы могут воспроизводиться, не беспокоясь о том, что на них будут воздействовать другие методы и константы. Вызов модуля: module имя_модуля…end. Если другая программа хочет использовать какой-либо определенный модуль, она может просто загрузить файлы модуля, используя оператор require (require имя_файла). Также можно встроить модуль в класс, использую оператор include (include имя_модуля). Если модуль определен в отдельном файле, то перед включением модуля в класс требуется включить этот файл с помощью оператора require.
  19. В языке программирования Ruby присутствует обработка исключений. Программа останавливается, если возникает исключение. Таким образом, исключения используются для обработки ошибок различного типа, которые могут возникнуть во время выполнения программы и предпринять соответствующие действия вместо полной остановки программы. Основные конструкции:
  20. begin…rescue…end - все от begin до rescue защищено. Если во время выполнения этого блока кода возникает исключение, управление передается в блок между rescue и end.
  21. retry - возможно перехватить исключение, используя блок rescue, а затем использовать оператор retry для запуска блока begin с начала.
  22. raise - возможно использовать оператор raise для принудительного вызова исключения.
  23. ensure - иногда нужно гарантировать, что некоторая обработка выполняется в конце блока кода, независимо от того, было ли вызвано исключение. Ensure идет после последнего rescue и содержит кусок кода, который всегда будет выполняться при завершении блока.
  24. else - если присутствует условие else, оно идет после блока rescue и перед ensure.
  25. catch and throw - несмотря на то, что механизм исключений raise и rescue отлично подходит для отказа от выполнения, когда что-то идет не так, иногда нужно иметь возможность выпрыгнуть из глубоко вложенной конструкции во время обычной обработки. Catch определяет блок, который помечен данным именем (это может быть Symbol или String). Блок выполняется нормально, пока не встретится throw.

Спустя 10 лет после выхода Ruby в открытый доступ Давид Хейнемейер Ханссон в 2004 году, во время работы над Basecamp для 37signals, представил фреймворк с открытым исходным кодом – Ruby on Rails. Он является основой для многих популярных веб-приложений и для веб-разработки. Веб-приложение — это особая программа, которая запускается на удаленном компьютере (веб-сервер). Это приложение, которое принимает запросы через http, как правило, от пользователей в веб-браузерах, и отвечает HTML или другим форматом данных. Такого рода программы также могут быть написаны на Ruby, но написание полнофункционального веб-приложения с нуля на Ruby является сложной задачей. Для таких целей и используется Ruby on Rails. Ruby on Rails - это набор инструментов и абстракций (в основном в форме модулей и классов), которые облегчают написание веб-приложений и упрощают их обслуживание. Он также позволяет упростить направление запросов на конкретные действия; генерировать схемы базы данных; организовывать и предоставлять ресурсы JavaScript, CSS; выполнять автоматизированные тесты; писать HTML-шаблоны с помощниками форматирования и разметки; писать более мощный, выразительный и читаемый код; проверять объекты данных и многое другое.

Ruby — это язык программирования высокого уровня, привлекший к себе немалую аудиторию. Разработанный в 1995 году как объектно-ориентированный язык программирования из не менее популярных на то время Lisp, Perl и Ada, Юкихиро Мацумото уделил особое внимание попыткам сделать Ruby естественным, не только простым. Интерпретируемый как Perl и Python и объектно-ориентированный как Java и Ada, Ruby удается создать идеальный баланс между производительностью и простотой.

2.4 Python

В начале 1980-х Гвидо Ван Россум работал в CWI (Centrum voor Wiskunde en Informatica) в качестве разработчика языка программирования ABC. Позже в CWI, в конце 1980-х, работая над новой операционной системой под названием AMOEBA, Гвидо Ван Россум начал искать язык сценариев с синтаксисом, подобным ABC, но с доступом к системным вызовам AMOEBA. Поэтому сам Гвидо Ван Россум начал разрабатывать новый простой язык сценариев, который мог бы преодолеть недостатки ABC [13]. Гвидо Ван Россум начал разработку нового языка в конце 1980-х и, наконец, представил первую версию этого языка программирования в 1991 году. В первоначальном варианте имеется модульная система Modula-3. Позже этот язык программирования получил название «Python». Часто люди предполагают, что название «Python» происходит от змеи питона. Даже логотип языка программирования Python изображает изображение двух змей, синего и желтого цвета. Но история именования несколько иная. Еще в 1970-х годах было популярное комедийное телешоу BBC под названием «Летающий цирк Монти Пайтона» («Monty Python's Flying Circus»), и Ван Россум был его большим поклонником. В честь этого и был назван язык программирования Python [14].


Ван Россум был «Великодушным пожизненным диктатором» (Benevolent Dictator For Life, или BDFL), что означало основателя проекта, который сохраняет за собой право принимать окончательные решения. Но 2018 году Ван Россум ушел с поста лидера. Некоторое время он работал в Google, но в настоящее время он работает в Dropbox. Его основной целью было обеспечить читабельность кода и повысить производительность труда разработчиков.

Конечно, Python, как и другие языки, прошел через несколько версий. Python 0.9.0 был впервые выпущен в 1991 году. Помимо обработки исключений, Python включал в себя классы, списки и строки. Что еще более важно, он включал лямбда-выражения, функции map, filter, reduce. В 2000 году был выпущен Python 2.0. Эта версия была скорее проектом с открытым исходным кодом от членов Национального исследовательского института математики и компьютерных наук. Эта версия Python включала в себя включение в список, полный сборщик мусора и поддерживала Unicode. Следующая версия Python 3.0 была выпущена в декабре 2008 года (последняя версия Python - 3.8.1). Хотя Python 2 и 3 похожи, есть небольшие различия.

Рассмотрим код простой программы:

#комментарий

class Object:

name = "The chosen one!"

def twenty_three(self):

print(self.name)

o = Object()

o.twenty_three()

input()

#комментарий

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

class Object:

Создание класса, имя которого Object.

name = "The chosen one!"

Присваивание переменной текстового значения "The chosen one!".

def twenty_three(self):

Создание метода, имя которого twenty_three. Принимает ссылку на текущий параметр.

print(self.name)

Вывод на консоль переменной name.

o = Object()

Создание экземпляра класса.

o.twenty_three(name)

Вызов метода через экземпляр класса.

input()

Функция ввода данных с клавиатуры и ожидание нажатия клавиши ENTER.

Пройдем по основам языка программирования Python:

  1. В языке Python определены следующие основные типы данных:
  2. Boolean – логическое значение. Хранит true (истина) или false (ложь).
  3. Int – целое число.
  4. Float – число с плавающей точкой.
  5. Complex – комплексные числа.
  6. Str – строки. В Python 3 является набором символов в Unicode
  7. Bytes – последовательность чисел в диапазоне от 0 до 255.
  8. List – список (массив).
  9. Tuple – кортеж. Отличие от списков – защита от изменений, меньший размер.
  10. Set – множество, содержит не повторяющиеся элементы в случайном порядке, которые возможно изменить.
  11. Frozen set – множество, содержит не повторяющиеся элементы в случайном порядке, которые невозможно изменить.
  12. Dict – словарь, где каждый элемент имеет ключ и значение.
  13. В языке Ruby существуют бинарные операции (производятся над двумя операндами) и операции присваивания. К бинарным операциям относят: +, -, *, /, // (целочисленное деление), % (получение остатка от деления), ** (возведение в степень).

Операции присваивания позволяют присвоить результат операции первому операнду: += (сложение), -= (вычитание), *= (умножение), /= (деление), //= (целочисленное деление), %= (получение остатка от деления), **= (возведение в степень).

  1. В языке программирования Ruby существуют следующие операции отношения: == (равно), > (больше, чем), < (меньше, чем), <= (меньше или равно), >= (больше или равно), != (не равно). Также присутствуют логические операции: and (если оба выражения истины), or (если одно выражение истинно), not (если выражение ложно).
  2. В языке программирования Python имеются условные конструкции:
  3. If – проверяет истинность условий, если проверка успешна, то выполняется блок. Конструкция if в свою очередь сама может иметь вложенные конструкции if.
  4. Else – выполняется, если условия в if не выполняется.
  5. Elif - альтернативный вариант условий.
  6. В языке программирования Python для выполнения некоторых действий множество раз в зависимости от условий используются циклы:
  7. while (выполняется, пока условие истинно),
  8. for…in… (выполняется код единожды для каждого элемента переменной). Часто используется с функцией range(). Одни циклы внутри себя могут содержать другие циклы.
  9. break (прерывание цикла до его завершения),
  10. continue (переход к следующей итерации).
  11. В языке программирования Python можно создавать методы (функции), которые выполняют определенную задачу и которые можно повторно использовать в других частях программы. Вызов функции: def имя(параметры). Некоторые параметры функции можно сделать необязательными, указав для них значения по умолчанию. С помощью символа звездочки перед параметром можно определить неопределенное количество значений. Функция может возвращать результат с помощью оператора return.

В Python есть два типа контекста: глобальный и локальный. Глобальный контекст подразумевает, что переменная доступна вне функции для всей программы (global имя_переменной). Локальные переменные определены в функции и операции с ней проводятся только в ней.

  1. В языке программирования Python для использования определенного кода в других программах возможно создавать модули. Для этого необходимо создать файл с заготовленным кодом с расширением .py. Название файла и будет являться названием модуля. Для его использования надо импортировать с помощью оператора import.

По умолчанию при импорте модуля он доступен через одноименное пространство имен. Однако его можно переопределить – import имя_модуля as имя_1. Еще один вариант предлагает импорт функциональности модуля в глобальное пространство имен текущего модуля с помощью ключевого слова from (from имя_модуля import функция_модуля). Python имеет обширную библиотеку встроенных модулей (random, math, re, collections, sys, os и другие).

  1. Python поддерживает объектно-ориентированное программирование, то есть некоторые компоненты программы можно определить в виде классов. Класс является шаблоном или формальным описанием объекта, а объект представляет экземпляр этого класса. Класс определяется с помощью ключевого слова class. переменные класса называют атрибутами.
  2. В языке программирования Python присутствует обработка исключений. Программа останавливается, если возникает исключение. Таким образом, исключения используются для обработки ошибок различного типа, которые могут возникнуть во время выполнения программы и предпринять соответствующие действия вместо полной остановки программы. Основные конструкции:
  3. try…except - весь основной код, в котором потенциально может возникнуть исключение, помещается после блока try и если в этом коде генерируется исключение, то работа кода, и выполнение переходит в блок except.
  4. finally – блок кода выполняется вне зависимости было ли сгенерировано исключение.
  5. raise - возможно использовать оператор raise для принудительного вызова исключения.
  6. as - можно передать всю информацию об исключении в переменную и затем использовать в блоке except.
  7. Python поддерживает множество различных типов файлов, с которыми можно взаимодействовать (cvs, txt, html). Последовательность методов работы с файлами: 1. open() – открытие файла; 2. read()/write() – чтение/запись; 3. close() – закрытие файла. Однако есть и более удобная конструкция – with (определяет для открытого файла переменную и выполняет набор инструкций, после автоматически закрывается).

Python является одним из самых популярных языков программирования высокого уровня. Его используют крупные корпорации как Google, Dropbox, Reddit, Spotify, Netflix и многие другие. Python — это ясный и лаконичный язык с превосходной встроенной стандартной библиотекой. Во многом благодаря PEP8 (руководство по написанию кода на Python) код Python, как правило, может быть достаточно последовательным независимо от того, кто его написал.