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

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

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

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

Добавлен: 25.05.2023

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

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

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

Я выбираю (для примера Java) именно этот вариант от David Eck and Richard Palais.

Теперь всё готово для создания ещё одного приложения:

Листинг 3. Реализация Java (файл triangle.java):

import java.io.*;

import java.util.StringTokenizer;

import java.lang.Double.*;

class Tric { // класс треугольник

public static final int nodes = 3;

Complex [] pt = new Complex[ nodes ];

public String toString() {

String ret = "";

for( int i = 0; i < nodes; i++ )

ret += "[" + ( new Double( pt[ i ].re ) ).toString() + "," +

( new Double( pt[ i ].im ) ).toString() + "] ";

return ret;

}

public double perimeter() {

double summa = 0.0;

for( int i = 0; i < nodes; i++ )

summa += pt[ i ].minus( pt[ nodes - 1 == i ? 0 : i + 1 ] ).r();

return summa;

}

public double square() {

Complex side1 = pt[ 1 ].minus( pt[ 0 ] ),

side2 = pt[ 2 ].minus( pt[ 0 ] );

return side1.r() * side2.r() *

Math.abs( Math.sin( side1.theta() - side2.theta() ) ) / 2.;

}

}

public class triangle {

public static void main( String[] args ) {

Console cons = System.console();

while( true ) {

String szStr = "";

Tric polygon = new Tric();

System.out.println( "координаты вершин в формате: X Y" );

for( int i = 0; i < Tric.nodes; ) {

szStr = cons.readLine( "%s%d%s", "вершина № ", i + 1, " : " );

if( null == szStr ) { // ^D

System.out.println( "завершение работы" );

System.exit( 0 );

}

StringTokenizer st = new StringTokenizer( szStr, " \r\n" );

try {

double x = ( new Double( (String)st.nextElement() ) ).doubleValue(),

y = ( new Double( (String)st.nextElement() ) ).doubleValue();

polygon.pt[ i ] = new Complex( x, y );

}

catch( java.util.NoSuchElementException ex ) {

System.out.println( "ошибка ввода!: " + ex.toString() );

continue;

}

catch( java.lang.NumberFormatException ex ) {

System.out.println( "ошибка ввода!: " + ex.toString() );

continue;

}

i++;

}

System.out.println( "вершин " + Tric.nodes + " : " + polygon.toString() );

System.out.println( "периметр = " + polygon.perimeter() );

System.out.println( "площадь = " + polygon.square() );

System.out.println( "---------------------------------" );

}

}

}

Компиляция в байт-код формата .class:

$ javac triangle_java.java

$ ls *.class

Complex.class triangle.class Tric.class

Независимо от того, помещены ли коды классов в один файл (как triangle и Tric) или импортируются из раздельных файлов как модули (как Complex), для каждого класса создаётся свой файл байт-кода.

Java существенно более объектный язык, чем рассмотренный ранее C++: здесь всё обязано быть классом, или не быть вовсе. Именно поэтому для запуска приложения Java мы обязаны создать фиктивный стартовый класс triangle, по существу не нужный.

$ java triangle

координаты вершин в формате: X Y

вершина № 1 : 1 1

вершина № 2 : 2 1

вершина № 3 : 1 2

вершин 3 : [1.0,1.0] [2.0,1.0] [1.0,2.0]

периметр = 3.414213562373095

площадь = 0.5

---------------------------------

координаты вершин в формате: X Y

вершина № 1 : 1

ошибка ввода!: java.util.NoSuchElementException

вершина № 1 : 1 2 3

вершина № 2 : 1 ff

ошибка ввода!: java.lang.NumberFormatException: For input string: "ff"

вершина № 2 : завершение работы

Выводы по Главе 2

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


Из всех охваченных в обзоре языков только два языка — C и C++ используют технику «нативной» компиляции в машинный код используемой платформы. Все же остальные, в той или иной мере и технике, используют виртуальную исполняющую машину (среду выполнения). Это, очевидно, становится тенденцией последнего десятилетия. Все ранние проекты языков программирования (Algol, FORTRAN, COBOL, Pascal) предполагали компиляцию именно в исполнимый машинный код. Требование наличия исполняющей виртуальной машины может показаться, на первый взгляд, некоторым ограничивающим фактором. Но и чисто компилирующие реализации (C, C++) давно уже не исполняются как абсолютный бинарный код — невозможно перенести файл .exe из Windows в Linux, или наоборот, файл ELF-формата из Linux в Windows. Так что, с некоторой натяжкой, ядро операционной системы можно также считать исполняющей виртуальной машиной для бинарных форматов (ещё до недавнего времени ядро Linux содержало код для непосредственного запуска и выполнения файлов .class бит-кода Java, что было позже устранено за ненадобностью).

Заключение

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

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

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

Языков программирования в наше время великое множество. Мы рассмотрели лишь самые популярные из них.

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


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

  1. Java. Методы программирования / под ред. Блинов И. Н., Романчик В. С. М. Четыре четверти, 2013. 34 с
  2. Афонин В.В., Никулин В.В. Методы моделирования и оптимизации с параметрами на языке С/С++ и MATLAB: в 2 ч. Саранск: Изд-во Мордов. ун-та, 2015. 184 с

Брайан У. Язык программирования C. 2-е издание. Пер. с англ. / Брайан У., Керниган, Деннис М., Ритчи. – М.: Издательский дом «Вильямс», 2009. – 304 с.

  1. Магамедова А.З, Дадаев А.М. Применение базовых алгоритмов обработки массивов в задачах по программированию на С++ // Информатизация образования и науки. 2016. № 1(29). С. 156. 161.
  2. Неклюдова С.А., Балса А.Р. Парадигмы программирования как инструменты разработ- чика программных систем // Информационные технологии и системы : межвузовский сбор- ник научных трудов. Выпуск 1 (12). – СПб., 2014.
  3. Пирс Б. Типы в языках программирования. М.: Лямбда пресс; Добросвет, 2012. 656 с.
  4. Серебряков В.А. Теория и реализация языков программирования / В.А. Серебряков. – М.: Физматлит, 2012. – 236 c.
  5. Крупнейший в Европе ресурс для IT-специалистов. [Электронный ресурс]. Режим доступа: https://habrahabr.ru/company/hh/blog/318450/ (дата обращения: 07.11.2017).

McALLISTER N. InfoWorld. «10 языков программирования, которые могут перевернуть мир IT» // Компьютерные вести [Электронный ресурс]. URL: http://www.kv.by/content/325498-10-yazykovprogrammirovaniya-kotorye-mogut-perevernut-mir-it (дата обращения: 08.11.2017).

PYPL Index [Электронный ресурс]. – Режим доступа: https://pypl.github.io/PYPL.html. (дата обращения: 09.11.2017).

Sketch – новый язык программирования, способный самостоятельно оптимизировать и завершать незаконченные участки кода // DailyTechInfo [Электронный ресурс]. URL: http://www. dailytechinfo.org/infotech/5691-sketch-novyy-yazyk-programmirovaniya-sposobnyy-samostoyatelnooptimizirovat-i-zavershat-nezakonchennye-uchastki-koda.html (дата обращения: 09.11.2017).

TIOBE Index [Электронный ресурс]. – Режим доступа: https://www.tiobe.com/tiobe-index//.(дата обращения: 09.11.2017).

Wyvern – новая система, позволяющая использовать несколько разных языков программирования при создании одной программы // DailyTechInfo [Электронный ресурс]. URL: http://www.dailytechinfo.org/infotech/6167-wyvern-novaya-sistema-pozvolyayuschaya-ispolzovat-neskolko- raznyh-yazykov-programmirovaniya-pri-sozdanii-odnoy-programmy.html (дата обращения: 08.11.2017).

Индекс TIOBE [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Индекс_TIOB. (дата обращения: 09.11.2017).

  1. Язык Wolfram Alpha – революция в области программирования // DailyTechInfo [Электронный ресурс]. URL: http://www.dailytechinfo.org/infotech/5709-yazyk-wolfram-alpha-revolyuciya-voblasti-programmirovaniya.html (дата обращения: 09.11.2017).
  1. Неклюдова С.А., Балса А.Р. Парадигмы программирования как инструменты разработ- чика программных систем // Информационные технологии и системы : межвузовский сбор- ник научных трудов. Выпуск 1 (12). – СПб., 2014.

  2. Пирс Б. Типы в языках программирования. М.: Лямбда пресс; Добросвет, 2012. 656 с.

  3. Афонин В.В., Никулин В.В. Методы моделирования и оптимизации с параметрами на языке С/С++ и MATLAB: в 2 ч. Саранск: Изд-во Мордов. ун-та, 2015. 184 с

  4. Крупнейший в Европе ресурс для IT-специалистов. [Электронный ресурс]. Режим доступа: https://habrahabr.ru/company/hh/blog/318450/ (дата обращения: 07.11.2017).

  5. Java. Методы программирования / под ред. Блинов И. Н., Романчик В. С. М. Четыре четверти, 2013. 34 с

  6. Магамедова А.З, Дадаев А.М. Применение базовых алгоритмов обработки массивов в задачах по программированию на С++ // Информатизация образования и науки. 2016. № 1(29). С. 156. 161.

  7. Языки программирования [Электронный ресурс]. URL: http://life-prog.ru (дата обращения: 08.11.2017).

  8. McALLISTER N. InfoWorld. «10 языков программирования, которые могут перевернуть мир IT» // Компьютерные вести [Электронный ресурс]. URL: http://www.kv.by/content/325498-10-yazykovprogrammirovaniya-kotorye-mogut-perevernut-mir-it (дата обращения: 08.11.2017).

  9. McALLISTER N. InfoWorld. «10 языков программирования, которые могут перевернуть мир IT» // Компьютерные вести [Электронный ресурс]. URL: http://www.kv.by/content/325498-10-yazykovprogrammirovaniya-kotorye-mogut-perevernut-mir-it (дата обращения: 08.11.2017).

  10. Wyvern – новая система, позволяющая использовать несколько разных языков программирования при создании одной программы // DailyTechInfo [Электронный ресурс]. URL: http://www.dailytechinfo.org/infotech/6167-wyvern-novaya-sistema-pozvolyayuschaya-ispolzovat-neskolko- raznyh-yazykov-programmirovaniya-pri-sozdanii-odnoy-programmy.html (дата обращения: 08.11.2017).

  11. Sketch – новый язык программирования, способный самостоятельно оптимизировать и завершать незаконченные участки кода // DailyTechInfo [Электронный ресурс]. URL: http://www. dailytechinfo.org/infotech/5691-sketch-novyy-yazyk-programmirovaniya-sposobnyy-samostoyatelnooptimizirovat-i-zavershat-nezakonchennye-uchastki-koda.html (дата обращения: 09.11.2017).

  12. Язык Wolfram Alpha – революция в области программирования // DailyTechInfo [Электронный ресурс]. URL: http://www.dailytechinfo.org/infotech/5709-yazyk-wolfram-alpha-revolyuciya-voblasti-programmirovaniya.html (дата обращения: 09.11.2017).

  13. Индекс TIOBE [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Индекс_TIOB.

  14. TIOBE Index [Электронный ресурс]. – Режим доступа: https://www.tiobe.com/tiobe-index//.

  15. PYPL Index [Электронный ресурс]. – Режим доступа: https://pypl.github.io/PYPL.html.

  16. Брайан У. Язык программирования C. 2-е издание. Пер. с англ. / Брайан У., Керниган, Деннис М., Ритчи. – М.: Издательский дом «Вильямс», 2009. – 304 с.