Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Другие языки > Разновидности языков программирования.


Автор: Анечка 10.1.2017, 23:19
Я запуталась в определениях. Мне надо написать реферат по информатике о языках программирования. Я искала материал по всему интернету, и отчаялась. Все так смутно описано. Вот есть группа языков программирования: C, C++, PHP, Python, Assembler, Turbo Pascal, Delphi, Java, JavaScript, Perl, Visual Basic, C#. Надо отсортировать по группам. Проверьте правильно ли я отсортировала:
1. Языки высокого уровня: C, C++, PHP, Python, Turbo Pascal, Delphi, Java, JavaScript, Perl, Visual Basic, C#.
2. Языки низкого уровня: Assembler.
3. Языки объектно-ориентированные:  C, C++, PHP, Python, Delphi, Java, Perl, C#
4. Языки не объектно-ориентированные: Assembler, Turbo Pascal
5. Языки скриптовые: HTML, CSS, JavaScript.

Вот еще вопрос про Питон, доказываю, что Питон язык не скриптовый, а объектно-ориентированный высокого уровня, а на одном из форумов мне доказывают обратное. Он не может быть скриптовый, т.к. это не язык сайтов как HTML, CSS, JS

Если несложно, поправьте меня пожалуйста. Проверьте, правильно ли я поделила на группы?

Автор: tzirechnoy 11.1.2017, 01:44
1. Довольно странно видеть C в языках высокого уровня. Последние лет 30 это не очень принято.
Впрочем, это совершэнная вкусовщина.

И да, у Turbo Pascal уровень примерно такой жэ, как и у C.

3. C не объектно-ориентированный.

4. Turbo Pascal примерно настолько жэ объектно-ориентированный, как PHP и Perl.

5. HTML и CSS -- это не языки программирования. Хотя, вроде бы, CSS ужэ почти в язык превратился.

https://en.wikipedia.org/wiki/Scripting_language


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

Автор: Romikgy 11.1.2017, 10:08
Цитата(tzirechnoy @  11.1.2017,  00:44 Найти цитируемый пост)
 Довольно странно видеть C в языках высокого уровня.

Довольно странно видеть такие высказывания
Цитата(Анечка @  10.1.2017,  22:19 Найти цитируемый пост)
что Питон язык не скриптовый

питон - это скриптовый язык! его можно завернуть в код виртуальной машины, но это скриптовый язык!
Цитата(Анечка @  10.1.2017,  22:19 Найти цитируемый пост)
Он не может быть скриптовый, т.к. это не язык сайтов как HTML, CSS, JS

прикольное высказывание... особенно то что HTML, CSS - это "языки" разметок!  и есть варианты полностью сайтов написанных на питоне

Я бы лучше поделил на компилируемые и не компилируемые языки. Тогда градация будет более четкой

Автор: Анечка 11.1.2017, 13:21
[QUOTE=tzirechnoy, 11.1.2017,  00:44, post2667321] 

Я бы лучше поделил на компилируемые и не компилируемые языки. Тогда градация будет более четкой

Если нетрудно, напишите пожалуйста.

Автор: Romikgy 11.1.2017, 13:46
  • Компилируемые: 
    •  не ОО: C,  Pascal,  Assembler, Фортра́н 
    • ОО: C++, Delphi, Java, Basic, C#
  • не компилируемые:
    • ОО: PHP, Python, JavaScript, Perl, lua, ruby
    • не ОО: shell , bat
как то так...


https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8/%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

Автор: Фантом 11.1.2017, 15:13
Если что, в Turbo Pascal с версии 5.0 (если не ошибаюсь, давно было) есть ООП, соответственно, во всех фактически используемых сейчас реализациях языка - тоже. 

В современном Фортране ООП тоже есть.

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

И т.д. и т.п.

Автор: tzirechnoy 11.1.2017, 15:36
Цитата
с версии 5.0


С версии 5.5.

Цитата
С появлением PyPy


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

Добавлено через 1 минуту и 21 секунду
Цитата
* не компилируемые:


Вот только все перечисленные "ОО" языки -- сейчас во что-нибудь компилируются. Либо в байткод либо вообще в JIT.

Добавлено через 2 минуты и 43 секунды
А вообще, отсутствие в списке Хаскелля, конечно, выдаёт пренебрежытельное отношэние авторки к мировому сообществу функцыональнщиков.
Фи таким быть.

Автор: Анечка 11.1.2017, 15:44
А мне все таки непонятно, почему это Питон скриптовый? 
На нем спокойно пишут, также как и на том же Java или C++ различные программы в IDE, но почему-то последние не относят к скриптовым...

Автор: Romikgy 11.1.2017, 16:10
по умолчанию (без доп модулей!) , программу на С++ собранную  на одном компе , с большой долей вероятности запуститься на другом! 
прогу написанную на питоне , без предустановленного питона в системе! на другой машине не запустишь , ни его скрипт , ни его байткод!!!

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

  

Автор: Анечка 11.1.2017, 16:37
Ну так Питон можно компилировать. Вставил в программу-компилятор, пишешь код, а компилятор потом переведет код в машинный. Не?
Другое дело CSS, PHP, они не компилируются, а выполняются в браузере. Но в Питоне можно писать проги под ОС, как и в Java, так почему же его относят все равно к скриптовому языку?

Автор: Romikgy 11.1.2017, 16:51
Цитата(Romikgy @  11.1.2017,  15:10 Найти цитируемый пост)
по умолчанию


Цитата(Анечка @  11.1.2017,  15:37 Найти цитируемый пост)
Не

используя костыли , по типу py2exe и т.п. можно , а если использовать cython так полностью компиляция получается, но это уже с++ будет ! а py2exe  заворачивает и питон и код в самораспаковывающий архив.... при большом желании также можно завернуть и php скрипт , был бы смысл...

Добавлено через 3 минуты и 53 секунды
Цитата(Анечка @  11.1.2017,  15:37 Найти цитируемый пост)
PHP, они не компилируются, а выполняются в браузере

php - не исполняется в браузере!
Цитата(Анечка @  11.1.2017,  15:37 Найти цитируемый пост)
как и в Java

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

Автор: tzirechnoy 11.1.2017, 17:42
Цитата
программу на С++ собранную  на одном компе , с большой долей вероятности запуститься на другом! 


Смешно. Это дажэ для C совсем не так. У меня, например, на этом компе твой экзэшник не запустится, поскольку wine временно сломан.

А для плюсов -- ещё более не так. Вы вот вроде виндузятник? Почитайте, что такое MSVC redistributable package.

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

Автор: Romikgy 11.1.2017, 18:08
Цитата(tzirechnoy @  11.1.2017,  16:42 Найти цитируемый пост)
Смешно. Это дажэ для C совсем не так. У меня, например, на этом компе твой экзэшник не запустится, поскольку wine временно сломан.

я хотел сказать , что для большинства пользователей это так.... тех кто использует винду.... а тот процент людей которые умные ... мое высказывание их не касается! Хотя есть варианты кросплатформеных исходников, ну и компилить под необходимую платформу.... ну это особенности, для тех кому это надо !
Цитата(tzirechnoy @  11.1.2017,  16:42 Найти цитируемый пост)
А для плюсов -- ещё более не так. Вы вот вроде виндузятник? Почитайте, что такое MSVC redistributable package.

компилятор от мелкомягких не единственный в мире компиляторов!
Цитата(tzirechnoy @  11.1.2017,  16:42 Найти цитируемый пост)
Это совсем не отменяет того, что Java у нас компилируемая. 

в байткод! без виртуальной машины он бесполезен!

Автор: Анечка 11.1.2017, 23:39
Выходит так:
компилируемые все, кроме Java, PHP, Python, Javascript.

Автор: Romikgy 12.1.2017, 09:58
http://www.dmoz.org/Computers/Programming/Languages/Scripting/

http://www.dmoz.org/Computers/Programming/Languages/Compiled/

Автор: Курсант 15.1.2017, 23:35
Ну, просто введите несколько классификаций, и расклассифицируйте все языки. При этом объясните, что значит каждый класс, как он устроен.
Расскажите про языки, компилируемые в объектный код (Java, C#), расскажите про интерпретируемые языки (JavaScript, Basic), про языки для написания скриптов автоматизации, про языки, компилируемые в исполняемые файлы для операционных систем. Про компиляцию bin-файла (который можно потом записать в загрузочный сектор или запустить на выполнение из ОЗУ). Ещё есть логические языки, объектно-ориентированные языки, процедурные и может ещё какие другие...
Ещё есть языки для генерации веб-сайтов (php).
Вообще помимо языков программирования обязательно следует рассказать про разные библиотеки и другие решения, позволяющие решать специфические задачи на языках программирования.

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

Автор: Olej 16.1.2017, 20:26
Цитата(Курсант @ 15.1.2017,  23:35)
Сумбурно и безсистемно, конечно, но я не теоретик программирования, простите. Сделайте несколько классификаций, расскажите про эти классификации и разбросайте языки по этим классам (один язык будет входить в несколько классов).

То что бессистемно - это точно  smile 

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

1. императивный ... это то, к чему все привыкли - оператор за оператором описывают действия (команды, приказания императивы), это все: Basic, Fortran, Pascal, C, C++, C#, Java, Go, PHP, Lua, JavaScript ... в значительной мере Python, Ruby, Scala ... (и здесь совершенно не важно, кто из них объектный как Java, или структурный как Pascal, или даже вовсе ине структурный даже, как Fortran ... и не важно кто из них компилирующие, а кто требует интерпретации - это всё уже величины вторичной степени малости);

2. функциональные - когда все действия записываются как последовательность вложенных (сколь угодно глубоких ) вызовов функций, это Lisp (и все его клоны, например Scheme), Hascell, Caml (и все клоны ML) ... в значительной мере Scala, в существенной мере Python, Go;

3. логические - когда не описываются вообще последовательность действий, а описывается система отношений между объектами, а из этого выводится результат, это все производные от Prolog, KL0, ShapeUp...

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

И только потом вы можете дальше делить (императивные главным образом) языки на:
1. компилируемые ... на сегодня здесь реально только  C, C++, Go 
2. интерпретиремые: Lisp, PHP, Lua, JavaScript, Ruby, Basic, ... подавляющее большинство на сегодня
3. компилируемые в промежуточный байт код, который затем интерпретируется языковой виртуальной машиной (VM): Java, Scala, Python, Forth...  C# и всё что .NET

... или так:
- без структурности: Basic, Fortran, ...
- структурные: Pascal, C, Go, ...
- объектные: Java, C++, Scala, ... JavaScript, Go, Lua...
 

Автор: Курсант 17.1.2017, 19:22
Спасибо, что повышаете мой уровень культуры. Тем не менее, классов ЯП я бы выделил много. И не только по философскому принципу, но и по деталям реализации. Вплоть до того, для каких ОС и архитектур существует компилятор. Если Вы представите несколько классификаций, т.е. несколько взглядов на множество ЯП, это будет огромным плюсом.

Автор: javital 21.3.2017, 16:48
А язык запросов сюда относится?

Автор: Romikgy 21.3.2017, 18:51
Цитата(javital @  21.3.2017,  15:48 Найти цитируемый пост)
А язык запросов сюда относится? 

нет 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)