| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Другие языки > Разновидности языков программирования. |
| Автор: Анечка 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 Но вообще, теоретическое, без практики, изучение языков программирования -- это, должно быть, очень занятный опыт. Как и других языков, впрочем, тожэ. |
| Автор: Анечка 11.1.2017, 13:21 |
| [QUOTE=tzirechnoy, 11.1.2017, 00:44, post2667321] Я бы лучше поделил на компилируемые и не компилируемые языки. Тогда градация будет более четкой Если нетрудно, напишите пожалуйста. |
| Автор: Romikgy 11.1.2017, 13:46 |
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.5.
У него и до того в байткод всё компилировалось, притом, в отличие например от 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 |
используя костыли , по типу py2exe и т.п. можно , а если использовать cython так полностью компиляция получается, но это уже с++ будет ! а py2exe заворачивает и питон и код в самораспаковывающий архив.... при большом желании также можно завернуть и php скрипт , был бы смысл... Добавлено через 3 минуты и 53 секунды php - не исполняется в браузере! ява при компиляции , добавляет к байткоду еще и виртуальную машину для его разкодировки. в линуксе насколько помнится вообще без предустановленых ява библиотек ява байткод не запускается... могу ошибатся... |
| Автор: tzirechnoy 11.1.2017, 17:42 | ||
Смешно. Это дажэ для C совсем не так. У меня, например, на этом компе твой экзэшник не запустится, поскольку wine временно сломан. А для плюсов -- ещё более не так. Вы вот вроде виндузятник? Почитайте, что такое MSVC redistributable package. С другой стороны -- вот для запуска программы на Java нужна Java-машына, которой сейчас на компьютэрах нет почти никогда. Это совсем не отменяет того, что Java у нас компилируемая. |
| Автор: Romikgy 11.1.2017, 18:08 | ||||
я хотел сказать , что для большинства пользователей это так.... тех кто использует винду.... а тот процент людей которые умные ... мое высказывание их не касается! Хотя есть варианты кросплатформеных исходников, ну и компилить под необходимую платформу.... ну это особенности, для тех кому это надо !
компилятор от мелкомягких не единственный в мире компиляторов! в байткод! без виртуальной машины он бесполезен! |
| Автор: Анечка 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 | ||
То что бессистемно - это точно Языки программирования делятся, в первую очерень, по своей идеологии, парадигме, философии... Язык программирования сам по себе никому не нужен (если бы можно было безошибочно записать программный код в машинных инструкциях). И то, каким способом язык выражает описываемый алгоритм и определяет его идеологию: 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 |
нет |