Файл: Классификация языков программирования высокого уровня (Теоретические основы языков программирования).pdf
Добавлен: 31.03.2023
Просмотров: 68
Скачиваний: 1
Python. До недавнего времени PHP был более популярный чем Python, но сейчас можно уверено сказать, что Python завоевывает доверие молодых разработчиков. Он имеет огромное количество преимуществ. В первую очередь, он лаконичный и понятный. Таким образом, Python – это отличный старт для начинающих разработчиков. Удобная структура кода позволяет легко разрабатывать проект и в дальнейшем поддерживать их. Для бизнеса это означает сокращение расходов. Питон это один из немногих серверных языков, который показывает динамику роста.
PHP Самый используемый язык программирования для серверной части. Согласно статистике, PHP используют около 240 миллионов вебсайтов. PHP имеет хорошую гибкость и производительность. Его можно использовать для небольших бизнес сайтов, а также для крупных проектов с высокой нагрузкой. Существует множество фреймворков разработанных на PHP. Они имеют хорошую скорость и высокий уровень безопасности. Наша компания, Merehad, отдает предпочтение именно этому языку программирования. В своей работе мы используем Laravel фреймворк для разработки крупных веб приложений. Основными недостатками является, отсутствие возможности разрабатывать десктопные приложения и серверные компоненты. Как и большинство серверных языков программирования он теряет свою популярность.
C++. Один из самых сложных языков программирования. Новичку будет сложно разобраться и многие стараются обходить его стороной. Но вместе с этим C++ имеет высокую производительность. Он позволяет создавать приложения и программы практически для любых целей.[9]
TypeScript. TypeScript разработан компанией Microsoft. За короткое время он набрал популярность. TypeScript является гибким и производительным языком программирования, который основан на Javascript. Основатели TypeScript потратили много усилий и продолжают добавляют новые решения для повышения производительности и удобства. Неудивительно, что Javascript пытается внедрить их у себя. Если вы новичок, на него стоит обратить внимание, так как он будет продолжит набирать популярность в 2018 году.
Ruby. Это динамично императивный объектно-ориентированный язык программирования. Он используется в веб разработке в связке с фреймворком Rails. Ruby является языком сверх высокого уровня. У него простой и чистый синтаксис. Ruby обеспечивает хорошую масштабированность и легкое сопровождение. Как и PHP он позволяет разрабатывать ecommerce платформы. Язык могут начать изучать новички. Основным недостатком является плохая документация и медленные рост популярности.
Swift. Язык разработан компанией Apple и был призван заменить Objective-c. Swift имеет улучшенную читабельность кода, больше возможностей по сравнению objective-c и повышенную безопасность. Он набирает популярность и сейчас превосходит objective-c. На мой взгляд это язык программирования имеет хорошие перспективы.
2.2. Консольный ввод-вывод в языках программирования С++ и Java
Язык C++ является расширением языка С. Сфера его применения – системное программирование. Однако долгое время С++ использовался для написания прикладных программ несмотря на то, что требования к системным и прикладным программам не совпадают.
Java – объектно-ориентированный язык. Абстракция, инкапсуляция, наследование и полиморфизм являются для него необходимыми свойствами, как и для С++.
Синтаксис операторов Java практически полностью совпадает с синтаксисом языка C, но в отличие от C++, Java это не расширение C, а совершенно независимый язык, со своими собственными синтаксическими правилами. На примерах программирования можно убедиться в том, что операторы объявления переменных, условия, цикла, присвоения значений и другие, а также арифметические, логические операции, операции сравнения в этих языках одни и те же.
Однако есть и различия, с которыми мы предлагаем ознакомиться на нескольких примерах.
Задача 1. Задан двумерный массив, размерностью 4x4.
Необходимо его заполнить по спирали таким образом, чтобы выходные данные имели следующее расположение:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7.
Программа 1.1. (С++)
#include<iostream>
using namespace std;
int main (int argc, char** argv)
{int x; cout<<"x="; cin>>x;
For (int i=0; i<<x<<" "; x++;}
int t=x, y=x+7;
cout<<<endl;
for(int=0; I<3;i++){ cout<<y<<<" ";y++}
cout<<t<< endl;
cout <t+6<<" "<<t+11<<" "<<t+10<<" "<<t+1<< endl;
t+=5
for(int=0; I<4;i++){ cout<<t<<<" ";y--}
return 0;}
Программа 1.2 (Java)
package b1; //b1-название пректа
import java. util.Scanner;
public class B1
{public static void main(String [] args)
{int x;
Scanner in = new Scanner(System.in);
System.out.printf("x=");
x=in.nextInt();
for(int i=0; i++) {System.out.printf("%d;\t", x); x++;}
int z=x, y=x+7;
System.out.printf("\n");
for(int i=0; I<3;i++) {System.out.printf("%d\t", y); y++;}
System.out.printf("%d\t", z);
System.out.printf("\n"); System.out.printf("%d\t%d\t%d\t%d\n", z+6, z+11, z+10,z+1);
z+=5;
for(int i=0; i<4;i++) {System.out.printf("%d\t",z ); z--;}
}}
Рисунок 11. Среды программирования Dev-С++ и NetBeans Java
Задача 2. В одномерном массиве, состоящем из n вещественных элементов, найти элемент с минимальным значением
Программа 2.1 (С++)
#include<iostream>
using namespace std;
int main(int argc, char** argv)
{int n; float min;
cout<<"n="; cin>>n;
float a [n];
for(int i=0;i<n;i++) {cout <<"a["<<i<<"]="; cin>>a[i]; }
min=a[0];
for (int i=0;I<n;a[i]) {min=a[i];}
cout<<"min="<< min
return 0;}
Программа 2.2 (Java)
package b2;
import java.util.Scanner;
public class B2
{public static void main(String[] args)
{int n; float min;
Scanner in = new Scanner(System.in);
System.out.printf("n=");
n=in.nextInt();
float []a = new float [n];
for(int i=0;i <n; i++) { System.out.print("\ta["+i+"]="); a[i]=in.nextInt();}
min=a[0];
for (int i=0;i<n; i++) if(min>a[i]) {min=a[i];}
System.out.print("\nmin="+ min+"\n");
}}
Рисунок 12. Задача 2
Задача 3. Ежемесячная стипендия студента составляет А рублей, а расходы на проживание превышают стипендию и составляют С рублей в месяц. Рост цен ежемесячно увеличивает расходы на 3%. Составить программу расчета суммы денег, которую необходимо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.
Программа 3.1 (С++)
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{float A, C, S=0;
cout<<"stip: "; cin>>A;
cout<<"exps: "; cin>>C;
S+=C;
cout<<endl;
for(int i=2;i<=10;i++) { C+=C*(float)3/100; S+=C;}
cout<<"exps - 10 m: "<<S<<endl;
cout<<"stip - 10 m: "<<A*10<<endl;
cout<<"sum - parents: "<<S-A*10;
return 0;}
Программа 3.2 (Java)
package b3; //b3 название моего проекта
import java.util.Scanner;
public class B3
{public static void main(String[] args)
{float A,C,S=0;
Scanner in = new Scanner(System.in); //объявить in
System.out.printf ("stip: ");
A=in.nextFloat();
System.out.printf ("\nexps: ");
C=in.nextFloat();
S+=C;
for(int i=2; i<=10; i++) { C=C+C*(float)3/100; S+=C;}
System.out.printf ("exps – 10 m: %f;\n", S);
System.out.printf ("stip – 10 m: %f;\n", A*10);
System.out.printf ("sum – parents: %f;\n", S-A*10);
}}
В программу на языке С++ добавляют строку «using namespace std;», а на языке Java – «import java.util.Scanner;». Данные строки необходимы для корректной работы методов ввода и вывода переменных в соответствующих языках. Именно в этих методах – разница в приведенных программах. В С++ для ввода и вывода используются объекты cin и cout из класса istream и ostream соответственно, хотя в нем есть возможность применения для данных целей методов scanf() и printf(), унаследованных из С. В Java для потокового ввода и вывода в классе System определены объекты in и out. Сам класс размещается в пакете java.lang. который автоматически подключается к программе.
В объекте out определены методы System.out.print(), System.out.println() и System.out.printf(). Способы применения последнего метода также заимствованы из С. В рассмотренных примерах на Java используется именно этот метод, но во второй задаче представлена работа метода print() с конкатенацией в виде знака «+»: System.out.print("\nmin="+ min+"\n"). Для того, чтобы перевести курсор на новую строку, в самом методе применен спецификатор "\n" (аналогично, такие спецификаторы для перехода на новую строку или для табуляции применяют в языке С++).
Когда есть необходимость в переводе курсора на следующую строку без применения "\n" можно воспользоваться методом System.out.println(). Логично предположить, что для ввода данных с консоли можно использовать метод System.in, но в данном случае применяют класс Scanner и его конструктор new. Scanner расположен в пакете java.util и он подключается к программе той строкой, которая была добавлена к шаблону на Java: java.util.Scanner. В теле функции main программист объявляет объект in и присваивает ему значение: Scanner in = new Scanner (System.in). Метод System.in передается new.
Java гораздо сильнее типизирован по сравнению с C++, соответственно и ограничений для него больше на действия с переменными и величинами разных типов. Для ввода целочисленных, вещественных или строковых чисел применяют разные методы. Например, in.nextInt() возвращает введенное с клавиатуры целочисленное значение, nextDouble() – число double, in.next() – строку до первого пробела и т. д.
Java является одним из наиболее востребованных языков программирования на современном этапе. Он предоставляет для широкого использования свои апплеты (applets) – небольшие, надежные, динамичные, не зависящие от платформы приложения.
Глава 3. Перспективы развития Java в 2018 году
В 2018 г. Java остается одним из наиболее популярных языков программирования, особенно для клиент-серверных веб-приложений. Его синтаксис является в значительной мере производным от Си и Си++, но у него меньше низкоуровневых возможностей, чем в любом из них.
Однако язык продолжает развиваться по мере того, как на рынке появляются новые области применения. Один из экспертов по Java сказал недавно, что в прошлом году Java, возможно, больше изменился за считанные недели, чем за предыдущие 13 лет.
Итак, что нас ждет в 2018-м? Во-первых, новый цикл релиза каждые 6 месяцев. Как будет сообщество Java справляться с поэтапными изменениями? Как будет развиваться Java, чтобы соответствовать новым потребностям больших и малых организаций?
Джон Дюймович, заслуженный инженер и главный технолог IBM по Java, имеющий более чем 20-летний опыт работы с этим языком, предложил свой прогноз, на что следует обратить внимание в мире Java в 2018 г.
Ускорится конвергенция с контейнерами. «В рамках более широких усилий с целью упростить разработку и управление будет установлена более тесная связь между контейнерами и выполняемыми программами вроде Java. Те и другие будут оптимизированы, чтобы обеспечить беспрепятственное управление приложениями Java и их конфигурирование. Появятся согласованное управление памятью и упрощенная коммутация (wiring) между конструктами Java и контейнерами. В результате разработчики смогут использовать преимущества контейнеров и выполняемых программ на Java, которые, в сущности, представляют собой другой вид контейнеров».
Kotlin станет следующим популярным языком. «Kotlin готов стать главной силой в мире программирования. Его лаконичный синтаксис и интероперабельность с Java уже сделали Kotlin популярным среди многих разработчиков. Теперь у него имеется первоклассная поддержка на Android, которая должна расширить его применение на мобильных устройствах. Следует ожидать, что в 2018 г. он еще больше расширит свои позиции».
Бессерверные платформы вызовут крупную перестройку Java. «Растет спрос на бессерверные платформы. Первоначально они рассматривались как модели потребления, но теперь они расширяются, превращаясь из простых моделей программирования событий в сложные системы на базе потоков. Данная инновация продолжится в связи с тем, что разработчики облаков хотят сместить акцент на приложение и не беспокоиться по поводу серверов. Это означает, что программы на Java необходимо будет оптимизировать и перенести на бессерверную архитектуру. А в этом мире быстрые стартапы и небольшие фирмы играют более важную роль».
Заключение
Язык программирования – это особый язык программистов для разработки программного обеспечения или это другие наборы инструкций и алгоритмов. В нынешнем веке очень много языков программирования, но по-настоящему популярны и широко востребованы только некоторые из них.
Создание языков программирования высокого уровня являлось необходимым шагом. Данные языки программирования должны были быть более совершенными, и напоминать естественные языки программирования и позволять не работать с машинными командами напрямую. Языки программирования высокого уровня призваны для того, чтобы описывать алгоритмы. Также они носят название алгоритмические языки. Их преимущество заключается в большей наглядности и независимости от конкретного компьютера.
При анализе обзора языков программирования высокого уровня мы выявили, что на первом месте стоит Javascript, на втором месте SQL. Эти два языка наиболее популярные в 2017-2018 году.
Мы рассмотрели на примерах 2 языка программирования высокого уровня: С++ и Java.
Синтаксис операторов Java практически полностью совпадает с синтаксисом языка C, но в отличие от C++, Java это не расширение C, а совершенно независимый язык, со своими собственными синтаксическими правилами. На примерах программирования можно убедиться в том, что операторы объявления переменных, условия, цикла, присвоения значений и другие, а также арифметические, логические операции, операции сравнения в этих языках одни и те же.