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

Обзор языков программирования высокого уровня (Язык программирования Pascal)

Содержание:

Введение

Объектом исследования данной курсовой работы являются языки программирования высокого уровня.

Предметами исследования являются понятие языка программирования высокого уровня, а также конкретные языки программирования такие как C, C++, Java, Python, Pascal.

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

Актуальность данной работы

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

Задачи исследования

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

2. Определения синтаксиса и семантики языка программирования; виды переменных, программных операторов, а также ключевые слова.

3. Обзор следующих языков программирования высокого уровня: C, C++ Java, Python, Pascal.

4. Написание простой консольной программы, которая запрашивает имя пользователя, его возраст, и, в зависимости от возраста, делает предположение о том, учится ли пользователь в школе. Варианты программы должны быть написаны на всех предложенных для обзора языках. (C, C++, Java, Python, Pascal )

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

ПЭВМ под управление операционной системы Linux Ubuntu 18.04 версия ядра 4.15.0-47-generic

Характеристики ПЭВМ: 16 ГБ ОЗУ, процессор AMD RYZEN 1600 6 cores/12 threads @ 3600 MGHz

Для написания исходных кодов был использован редактор Vim версии 8.0

Для компиляции программ на C был использован компилятор gcc версии 7.3.0

Для компиляции программ на C++ был использован компилятор g++ версии 7.3.0

Для компиляции программ на Java был использован компилятор javac версии 10.0.2. Для запуска был использован интерпретатор java версии 10.0.2

Для запуска программы на языке Python был использован интерпритатор Python версии 3.6.7

Для компиляции программ на Pascal был использован компилятор Free Pascal Compiler версии 3.0.4

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

Язык программирования — Формализованный язык, предназначенный для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными; в них синтаксис и семантика строго определены, поэтому они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня: [1]

Язык высокого уровня — язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, ПЛ/1, Бейсик, Паскаль, Си, Ада и др.; [1]

Язык низкого уровня — язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код.

Таким образом, можно сделать вывод о том, что основное отличие языка высокого уровня от языка низкого уровня заключается в зависимости от ЭВМ, на котором пишется программа. [1]

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

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

Также языки программирования могут быть разделены по парадигмам программирования, естественным в использовании для данного языка, на Императивный, Декларативный, Функциональный, и Объектно-ориентированный.

Императивный язык программирования — язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения. [1]

Декларативный язык программирования — язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий. [1]

Функциональный язык программирования — декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений. [1]

Объектно-ориентированный язык программирования - язык описания программы поведением совокупности взаимосвязанных объектов. [2]

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

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

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

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

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

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

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

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

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

Но даже тут есть исключения. Например, язык программирования Java использует интерпретатор JVM (Java Virtual Machine) для исполнения своего кода. Однако, также Java использует компиляцию исходного кода в специальный файл jar (java runtime), который является своего рода машинными кодами для интерпретатора JVM. [6]

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

Синтаксис языка - совокупность правил, определяющих допустимые конструкции (слова, предложения) языка, его форму. [9]

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

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

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

Например, для языка программирования Си мы знаем, что имена переменных могут быть составлены из цифр, букв разного регистра, а также символа нижнего подчеркивания «_», при этом первым символом могут быть только буквы и символ «_».

Также именно синтаксис определяет операторы сравнения, такие как «==», «!=», «>=» и другие. В том числе синтаксис определяет ключевые слова языка, такие как for, while, return. [4]

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

Например, именно благодаря семантике мы понимаем, что следующий код приведет к выполнению внутреннего участка кода в цикле 10 раз:

for (int i=0; i<10; i++) {

// Внутренний код в цикле

}

Операторы, виды переменных, ключевые слова

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

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

Операторы позволяют преобразовывать переменные и числа различными способами. Таким образом, числа могут быть сложены, перемножены, может быть выполнена операция побитового «ИЛИ» и другие.

Ключевые слова же в свою очередь позволяю контролировать порядок выполнения кода. Встречаются ключевые слова, которые обеспечивают переход к другому участку кода (goto), исполнение определенного кода по определенному условию (if), повторение кода в цикле (for, while), и множество других. [9]

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

Например, в языке Pascal, все переменные должны быть заданы в начале функции или процедуры, должен быть указан тип для каждой переменной. [8]

В языке Python переменные можно указывать где угодно в теле блока кода, также не нужно указывать тип данных — интерпретатор Python автоматически определит тип переменной. [7]

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

C — многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе Turbo C (фирмы Borland), Microsoft C и Quick C (фирмы Microsoft), а также Zortech C (фирмы Symantec). Многие из указанных версий обеспечивают также работус Си++. [1]

Язык C является функциональным, компилируемым языком программирования со строгой типизацией.

Язык использует препроцессинг, который используя специальные ключевые слова изменяет текст программы перед компиляцией. Ключевые слова такие, как #define, #include, #ifdef, #ifndef.

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

В языке С основными типами данных являются int — целое число, float — число с плавающей точкой, double — число с плавающей точкой, с двойной точностью, char — символ таблицы ASCII и bool — логический тип данных, который может содержать данные вида true или false. [4]

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

Также, для работы с большим количеством однотипных данных существует такое понятие, как массив. Массив позволяет именовать целый участок памяти, в котором будет содержаться множество экземпляров переменных данного типа. Каждый экземпляр будет доступен через название массива и индекс элемента в нем. Нумерация элементов традиционно начинается с 0.

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

Такие ключевые слова и конструкции, как for, while, if, else, do … while, goto, switch, case, break, continue, return позволяют управлять программным потоком — они решают, как будет вести себя программа, какие ветвления она совершит в процессе своего выполнения. [4]

Также для управления программного потока используются такие программные конструкции, как функции. Функция — это именованный участок кода, который выполняется при вызове самой функции. В функцию могут быть переданы переменные в качестве аргументов. У каждой функции должен быть определен тип данных, который функция должна вернуть после выполнения своего кода. Существует специальный тип void — он используется в том случае, если функция не должна возвращать никаких значений (можно сказать, что такая функция является процедурой).

Для выполнения программы из 4-й задачи мы воспользуемся библиотекой stdio.h. Это стандартная библиотека языка C, в которой хранятся все необходимые для написания программы библиотечные функции.

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

Для начала мы определим переменные, в которые будут записаны имя и количество лет. Для имени мы используем массив символов, размером в 32 символа, так как я не знаю никого, чье имя длиннее 31-го символа (32-й символ будет использован для системного символа «\0», означающего конец строки). Называться массив будет name. Для количества лет мы воспользуемся типом int, а переменную назовем age.

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

Далее нам нужно считать переменные, которые введет пользователь. Для этого существует специальная библиотечная функция scanf().

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

Обычно в школу поступают в 7 лет, заканчивают в 18. Напишем простое условие if (age>=7 && age<=18), такое условие позволит нам определить, что пользователь удовлетворяет возрасту школьника. В таком случае, мы пишем с помощью printf(), что пользователь, вероятно школьник. Иной случай мы обрабатываем с помощью ключевого слова else, где сообщаем, что пользователь скорее всего школьником не является.

Полный текст программы main.c можно найти в приложении.

Теперь скомпилируем программу и запустим ее:

~$ gcc main.c -o cprog

~$ ./cprogr

В терминале мы увидим следующее:

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

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

C++ - язык программирования высокого уровня, созданный Бьярном Страуструпом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).[1]

Язык C++ является объектно-ориентированным, компилируемым языком программирования со строгой типизацией.

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

Из нового, в C++ появляются такие понятия, как класс и шаблон.

Класс — это новая семантическая конструкция языка, которая позволяет объединить данные и методы, которые эти данные используют в один структурированный объект. У класса бывают данные и методы различных видов. Основные виды данных это private и public (также существует вид protected, его можно подробно изучить в специальизированной литературе). Данные и методы вида public доступны коду, который не связан с данным объектом. К данные и методам типа private же не может быть получен доступ извне. Таким образом реализуется такое свойство объектно-ориентированного программирования, как инкапсуляция. [5]

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

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

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

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

Единственная разница заключается в том, что вместо библиотеки stdio.h, мы используем две библиотеки C++: iostream и string. Для ввода-вывода мы воспользуемся стандартными потоками данных cout и cin. Вместо массива символов, мы используем специальный тип данных string, он реализован как класс в стандартной библиотеке string.

Полный текст программы main.cpp можно найти в приложении.

Теперь скомпилируем программу и запустим ее:

~$ g++ main.cpp -o cppprog

~$ ./cppprogr

В терминале мы увидим следующее:

На изображении видно, как мы успешно компилируем программу с помощью g++, после чего запускаем ее.

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

Java — язык программирования высокого уровня, созданный Джеймсом Гослингом для программирования бытовых устройств. Главным принципом данного языка программирования можно рассматривать фразу «Написано однажды, работает всегда». Особенностью данного языка является то, что исходный код компилируется в специальный байт-код, который затем выполняется на его интерпретаторе JVM. Совместимость с различными архитектурами поддерживает JVM, которая реализуется на любых устройствах отдельно. Данный язык разрабатывает компания Sun Microsystems, поглощенной корпорацией Oracle. [1]

Язык Java является объектно-ориентированным, компилируемым языком программирования со строгой типизацией.

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

У языка Java нет препроцессинга, как в языках C или C++. Подключение различных библиотек происходит с помощью ключевого слова import. Так, например, выражение import java.util.Date; подключает стандартный пакет Java для работы с датами.

В языке Java есть всего 8 типов данных. Это целочисленные byte, short, int, long. Числа с плавающей точкой float и double. Символы char и логический тип данных boolean.

Точно так же, как и в языках C/C++ существуют логические и математические операторы, операторы сравнения, операторы присваивания, операторы побитовых операций.

Для управления программным потоком есть такие ключевые слова и конструкции, как for, while, if, else, do … while, goto, switch, case, break, continue, return.[6]

Также, в языке Java есть специальные ключевые слова для обработки исключений. Исключения – это механизм, который позволяет обрабатывать различные ошибки в программе, и кодировать специальные действия, которые должны быть выполнены в случае появления таких ошибок. Для этого используются такие ключевые слова, как: throw, throws, try, catch, finally.

Также к особенностям Java можно отнести работу с памятью. Так, динамически выделенная память освобождается автоматически, когда ресурс, для которого память была выделена перестает использоваться. Для этого в JVM есть специальная подпрограмма, которая называется сборщик мусора (garbage collector).

Для выполнения программы из 4-й задачи мы импортируем специальный класс Scanner, который мы используем для считывания имени и возраста из консоли. import java.utils.Scanner; - такая строка нам поможет выполнить необходимое действие.

Для считывания ввода, мы создадим экземпляр класса Scanner. Таким образом считать имя можно будет с помощью метода next(), а считать возраст можно будет с помощью метода nextInt().

Для вывода мы будем использовать системную функцию println().

Условие, по которому бы будем проверять, является ли пользователь школьником, остается таким же, как и в C/C++.

Полный текст программы javaprog.java можно найти в приложении.

Теперь скомпилируем программу и запустим ее:

~$ javac javaprog.java

~$ java javaprog

В терминале мы увидим следующее:

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

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

Python — язык программирования высокого уровня, разработанный Гвидо ван Россумом, ориентированный на быструю разработку программ. Язык прост в изучении, в нем придается особое значение читаемости кода, а это сокращает затраты на сопровождение программных продуктов. Также язык часто используется в качестве сценарного языка для написания прикладных скриптов. [7]

Язык Python является интерпретируемым, объектно-ориентированным высокоуровневым языком программирования с динамической типизацией.

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

Точно так же, как и в Java, у Python нет препроцессинга. Включение модулей из библиотек происходит с помощью ключевого слова import.

В языке Python есть множество типов, некоторые из них довольно необычные. Начнем с чисел. Целочисленные типы: int, long, bool (несмотря на то, что bool логический тип, он представлен числами 0 и 1). Число с плавающей точкой float. Также есть тип для комплексных чисел complex. Есть специальные типы для последовательностей: строчные типы str и unicode, кортеж tuple, список list. Словарь dict. Тип файла file. А также специализированные типы None, NotImplemented, Ellipsis. [7]

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

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

Управление памятью организовано как в Java, с помощью сборщика мусора.

Как и любой интерпретируемый язык, Python для работы нужен интерпретатор. В данный момент язык Python разделен на 2 версии — Python и Python3. Для них есть соответствующие интерпретаторы.

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

Для чтения ввода используется специальная функция input. А разделить переменные для имени и возраста можно с помощью метода split(). Также стоит отметить, что ввод стандартно считывается в качестве текста, поэтому возраст нужно преобразовать в число с помощью функции int().

Вывести предложения можно с помощью функции print().

Полный текст программы prog.py можно найти в приложении.

Теперь запустим программу:

~$ python3 prog.py

В терминале мы увидим следующее:

На изображении видно, как мы успешно запускаем программу с помощью интерпретатора python3.

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

Pascal — процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-ч гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. В своей начальной версии Pascal имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Наиболее распространена версия Turbo Pascal (фирма Borland). [1]

Язык Pascal является компилируемым, процедурным высокоуровневым языком программирования со строгой типизацией.

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

Использование библиотек возможно с помощью ключевого слова uses.

Для языка есть множество типов, перечислю некоторые из них. Целочисленные типы: Byte, ShortInt, SmallInt, Word, LongWord, LongInt, Integer и другие. Типы чисел с плавающей точкой: Real, Single, Double, Extended и другие. Также есть уже известные типы такие как Char, Boolean, String.[8]

Операторы и ключевые слова представлены в классическом виде, с небольшими различиями. Различия такие, как оператор присваивания требует двоеточие перед знаком „равно“ «:=», блоки кода обрамляются не фигурными скобками, а ключевыми словами begin и end.

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

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

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

Переменные name и age будут иметь типы String и Integer соответственно.

Полный текст программы prog.pas можно найти в приложении.

Теперь скомпилируем программу и запустим ее:

~$ fpc prog.pas

~$ ./prog

В терминале мы увидим следующее:

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

Заключение

В данной работе мы провели обзор языков программирования высокого уровня. Мы определили какой язык может называться высокоуровневым, а также, чем он отличается от низкоуровневых. Мы рассмотрели несколько языков программирования, таких как C, C++, Java, Python и Pascal. Разобрались в основных типах данных, которые они используют. Также мы узнали основные ключевые слова, которые они используют для контроля программного потока. Также мы разобрали, какие языки являются компилируемыми, какие интерпретируемыми, а также рассмотрели особый случай для Java.

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

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

Напоследок хочу сказать, что для меня был неожиданным тот факт, что такие разные языки во многом похожи. Обычно я пишу программы на языках C/C++, но меня также смогли заинтересовать языки Java и Python. Думаю, я займусь более подробным изучением данных языков в будущем.

Приложение

Исходные коды файлов

Язык C

файл main.c

#include <stdio.h>

int main()

{

char name[32];

int age;

printf ("Введите свое имя и возраст: ");

scanf ("%s %d", name, &age);

printf ("Привет, %s\n", name);

if (age>=7 && age<=18)

printf ("Похоже, что %s - школьник!\n", name);

else

printf ("Непохоже, что %s - школьник!\n", name);

return 0;

}

Язык C++

файл main.cpp

#include <iostream>

#include <string>

using namespace::std;

int main()

{

string name;

int age;

cout << "Введите свое имя и возраст: ";

cin >> name >> age;

cout << "Привет, " << name << endl;

if (age>=7 && age<=18)

cout <<"Похоже, что " << name << "школьник!" << endl;

else

cout <<"Непохоже, что " << name << " школьник!" << endl;

return 0;

}

Язык Java

файл javaprog.java

import java.util.Scanner;

public class javaprog {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

System.out.print("Введите свое имя и возраст: ");

String name = in.next();

int age = in.nextInt();

System.out.println("Привет, "+name);

if (age>=7 && age<=18)

System.out.println("Похоже, что "+name+" - школьник!");

else

System.out.println("Непохоже, что "+name+" - школьник!");

}

}

Язык Python

файл prog.py

#!/usr/bin/python3

data = input("Введите свое имя и возраст: ").split()

name = data[0]

age = int(data[1])

print( "Привет, " + name )

if age>=7 and age<=18:

print("Похоже, что " + name + " - школьник!")

else:

print("Непохоже, что " + name + " - школьник!")

Язык Pascal

файл prog.pas

program Prog;

var

name: string;

age: Integer;

begin

Write ('Введите свой возраст и имя: ');

Read (age, name);

Writeln ('Привет, ', name);

if (age >= 7) and (age <= 18) then

begin

Writeln ('Похоже, что ', name, ' - школьник!');

end

else

begin

Writeln ('Непохоже, что ', name, ' - школьник!');

end

end.

Список литературы

1. Информатика. Новый систематизированный толковый словарь : словарь / Ф. С. Воройский. - Москва : Изд-во Физматлит, 2003. - 757с.

2. Англо-русский толковый словарь по системотехнике ЭВМ: Для пользователей ПЭВМ : словарь / Е. С. Алексеев, А. А. Мячев - Москва : Изд-во Финансы и Статистика, 1993. - 256с.

3. Assembler. 2-е издание : учебник для вузов / В. И. Юров. - Санкт-Петербург : Изд-во Питер, 2010. - 637с.

4. Язык программирования C, Лекции и упражнения, 5-е издание : учебник, перевод / С. Прата. - Москва : Издательский дом «Вильямс», 2013. - 960с.

5. Объектно-ориентированное программирования в C++, 4-е издание : учебник, перевод / Р. Лафоре. - Санкт-Петербург : Изд-во Питер, 2011. - 928с.

6. Java. Объектно-ориентированное программирование : учебное пособие / А. Н. Васильев. - Санкт-Петербург : Изд-во Питер, 2013. - 400с.

7. Язык программирования Python, 2-е издание : учебное пособие / Р. А. Сузи. - Москва : Изд-во Интуит, 2016. - 351с.

8. Паскаль. Программирование на языке высокого уровня, 2-е издание : учебник для вузов / Т. А. Павловская. - Санкт-Петербург : Изд-во Питер, 2010. - 464с.

9. Основы программирования : учебник для вузов / Г. С. Иванова. - Москва : Изд-во МГТУ им. Н. Э. Баумана, 2004. - 415с.

10. C language international standard : стандарт / ISO/IEC 9899:201x URL: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf