Я в курсе, что одни нужны для софта, другие для создания сайтов и для остальных целей. Некоторые легче чем остальные.
Меня интересует конкретно основа. "Другие" языки программирования нр: пайтен, джава итд. Они слеплены из языка программирования общего назначения ( нр с++ ) ??? Или они они настольно другие, что, я не знаю, созданы с нуля или что.....
Не может же быть, что на с++ написан определённый инструментарий и это начинает называться "другим" языком программирования.
C/C++
Чем отличаются языки программирования ???
Самое низкоуровневое программирование - это писать буквально машинные коды, наиболее близок к решению таких задач C, но даже он уже обычно относится к высокоуровневым.
Далее учитываем языки под ООП типа C++/C#/Java/JS.
Ну и в дальнейшем наибольшее количество оставшихся из существующих языков по сути банальная кастомизация от предшественников, которая во внутренней начинке ничего нового уже не предлагает(Например C
->
Python(Это как бы набор написанных на C типичных решений тех или иных задач, что делает синтаксис легким и более удобным в работе)
->
/PyPy(вариант без динамических возможностей Python, но с его синтаксисом)
/Brython(Тот же Python, но его исходники на JS, что позволяет использовать в веб)
/Grumpy(Тот же Python, но его исходники на GO, не потому что это прям нужно, просто GO сейчас модный))
Далее учитываем языки под ООП типа C++/C#/Java/JS.
Ну и в дальнейшем наибольшее количество оставшихся из существующих языков по сути банальная кастомизация от предшественников, которая во внутренней начинке ничего нового уже не предлагает(Например C
->
Python(Это как бы набор написанных на C типичных решений тех или иных задач, что делает синтаксис легким и более удобным в работе)
->
/PyPy(вариант без динамических возможностей Python, но с его синтаксисом)
/Brython(Тот же Python, но его исходники на JS, что позволяет использовать в веб)
/Grumpy(Тот же Python, но его исходники на GO, не потому что это прям нужно, просто GO сейчас модный))
Костя Drivp
Ты пока понятнее остальных объяснил. Спс.
Любые языки программирования имеют в основе не "другие языки программирования", а само программирование. Язык программирования - не нечто особенное, а всего лишь способ записи алгоритмов в понятном компьютеру виде. Для записи алгоритмов требуется совсем немного базовых концепций и каждый язык программирования - сочетание реализаций этих концепций, удобное для решения определённого круга задач.
Есть, например, концепция "ветвление" и есть конкретные реализации этой концепции в конкретных языках программирования. И оператор if в Java (реализующий один из видов ветвления) отличается от оператора if в Python только мелкими деталями, никак не влияющими на работу этих операторов.
Циклы в Python и Java отличаются сильнее - в силу того, что концепция цикла в Python реализована в урезанном виде.
И т.д.
Английские слова в языках программирования - это всего лишь значки-иероглифы, обозначающие действия, литературный смысл которых абсолютно не важен. Ты же, когда на уроке математике используешь значок-иероглиф cos, не вспоминаешь, что на латыни "косинус" - это "дополнение волны"?
Использовать русские слова - это создавать местечковый продукт, который никому за границами России не нужен. Как, например, никому не нужна продукция 1С, в языке которой как раз русские слова и используются.
Есть, например, концепция "ветвление" и есть конкретные реализации этой концепции в конкретных языках программирования. И оператор if в Java (реализующий один из видов ветвления) отличается от оператора if в Python только мелкими деталями, никак не влияющими на работу этих операторов.
Циклы в Python и Java отличаются сильнее - в силу того, что концепция цикла в Python реализована в урезанном виде.
И т.д.
Английские слова в языках программирования - это всего лишь значки-иероглифы, обозначающие действия, литературный смысл которых абсолютно не важен. Ты же, когда на уроке математике используешь значок-иероглиф cos, не вспоминаешь, что на латыни "косинус" - это "дополнение волны"?
Использовать русские слова - это создавать местечковый продукт, который никому за границами России не нужен. Как, например, никому не нужна продукция 1С, в языке которой как раз русские слова и используются.
Костя Drivp
Ну Россия самая большая страна и соседей русско говорящих не мало. Было бы круто, если бы у нас был местный ЯП, который очень широко применялся. Всё таки родной язык приятнее, хоть в прогм он не очень удобный.
Языки программирования отличаются семантическими, синтаксическими правилами, парадигмами и так далее. Языки с общими парадигмами похожи друг на друга. Например, объектно-ориентированные, функциональные, императивные. Например, Java сильно напоминает C#. На C++ нужно думать о том, как использовать или освобождать память, избегать утечек памяти, в то время как на C# или Java это делается автоматически сборщиком мусора. Python это язык с динамической типизацией, в то время как C#, Java, C++ пользуются статической типизацией. Компиляторы пишутся также при помощи языков программирования. На ассемблере нынче программы не пишут. Какой язык использовался при написании компилятора, вообще никак не влияет на то, какие парадигмы и правила будут в конечном языке. Язык вообще не пишется на языке программирования. На языке программирования пишется компилятор для конкретного языка.
есть такая диаграммка
https://upload.wikimedia.org/wikipedia/commons/2/25/Genealogical_tree_of_programming_languages.svg
гуглится по "family tree of programming languages".
она старенькая, но дает представление о языковом разнообразии в отрасли.
яп кардинально различаются происхождением.
представь себе два берега, на одном из которых толпятся математики фундаментальные и прикладные, физики, инженеры, студенты, маркетологи и т.п.
на другом берегу клубятся исполняющие системы, функция которых - хранение и предоставление данных, вычисления, взаимодействие с пользователями, управление периферией (а периферией может быть всё, от сверла по дереву до истребителя)
и между этими берегами лежит пропасть непонимания.
есть, конечно, умельцы, которые могут перепрыгнуть эту пропасть, налабав программу сразу на машинных кодах, но таких мало. а задач много.
поэтому нужен мост.
вот, языки программирования такими мостами и являются.
эти мосты можно начать наводить с любого берега.
начинаешь с этого - тут важно, откуда именно, с прикладной математики, с матлогики - и получаешь алгол, prolog, haskell, algol, fortran, pascal, РЕФАЛ и т.д. или специализированные mumps, sql, 1C и т.д.
начинаешь с того, машинного - там тоже небезразлично, откуда - и получаются asm, c, erlang, ada.
то, что компиляторы для этих языков написаны на каком-нибудь си, не должно смущать, ведь это лишь средства перевести программу, созданную в соответствии с концепциями своего яп, в машинные коды.
та же программа на prolog-е - это набор предикатов, по которому компилятор строит дерево секвенций, т.е., забористая математика, сильно отличающаяся от си-подобных языков.
или haskell, в котором программа рассматривается как теорема, требующая доказательства.
дополнительную интригу вносят парадигмы (событийно-ориентированные, объектно-ориентированные, функциональные и т.д.) которые вызывают жуткие мутации типа C#, python, node.js, а также благие намерения по улучшению существующих яп, типа perl->php, pascal->modula, java->kotlin, c->rust.
ну и, разумеется, эти языки и используемые в них подходы в процессе своего развития активно проникают друг в друга, порождая всякие симбионты.
короче, всё сложно.
https://upload.wikimedia.org/wikipedia/commons/2/25/Genealogical_tree_of_programming_languages.svg
гуглится по "family tree of programming languages".
она старенькая, но дает представление о языковом разнообразии в отрасли.
яп кардинально различаются происхождением.
представь себе два берега, на одном из которых толпятся математики фундаментальные и прикладные, физики, инженеры, студенты, маркетологи и т.п.
на другом берегу клубятся исполняющие системы, функция которых - хранение и предоставление данных, вычисления, взаимодействие с пользователями, управление периферией (а периферией может быть всё, от сверла по дереву до истребителя)
и между этими берегами лежит пропасть непонимания.
есть, конечно, умельцы, которые могут перепрыгнуть эту пропасть, налабав программу сразу на машинных кодах, но таких мало. а задач много.
поэтому нужен мост.
вот, языки программирования такими мостами и являются.
эти мосты можно начать наводить с любого берега.
начинаешь с этого - тут важно, откуда именно, с прикладной математики, с матлогики - и получаешь алгол, prolog, haskell, algol, fortran, pascal, РЕФАЛ и т.д. или специализированные mumps, sql, 1C и т.д.
начинаешь с того, машинного - там тоже небезразлично, откуда - и получаются asm, c, erlang, ada.
то, что компиляторы для этих языков написаны на каком-нибудь си, не должно смущать, ведь это лишь средства перевести программу, созданную в соответствии с концепциями своего яп, в машинные коды.
та же программа на prolog-е - это набор предикатов, по которому компилятор строит дерево секвенций, т.е., забористая математика, сильно отличающаяся от си-подобных языков.
или haskell, в котором программа рассматривается как теорема, требующая доказательства.
дополнительную интригу вносят парадигмы (событийно-ориентированные, объектно-ориентированные, функциональные и т.д.) которые вызывают жуткие мутации типа C#, python, node.js, а также благие намерения по улучшению существующих яп, типа perl->php, pascal->modula, java->kotlin, c->rust.
ну и, разумеется, эти языки и используемые в них подходы в процессе своего развития активно проникают друг в друга, порождая всякие симбионты.
короче, всё сложно.
Не совсем правильно, много языков написано на c++ - да
но инструментарий и тд работает вообще по другому
типо даже шиндовс на нем написан
поэтому он и использует c++ так как винда его поддерживает и все функции как exe программа на них строятся, запросы, окна и тд.
можно сказать что основа, но уже как будет строиться сам язык зависит от создателя
синтаксис, оптимизация, библиотеки и легкость
но инструментарий и тд работает вообще по другому
типо даже шиндовс на нем написан
поэтому он и использует c++ так как винда его поддерживает и все функции как exe программа на них строятся, запросы, окна и тд.
можно сказать что основа, но уже как будет строиться сам язык зависит от создателя
синтаксис, оптимизация, библиотеки и легкость
Костя Drivp
То есть поскольку винда на написана на плюсах, то все остальные языки программирования в своей основе слеплены из с++ ?
Похожие вопросы
- На каком языке программирования (Assembler / С / С++) лучше будет написать компилятор для своего языка программирования?
- Что такое #include <iostream>, std using namespace std В языке программирования C++?
- C#; C++; python изучение языков программирования
- Почему изучение C++ как первый язык программирования даёт такое сильное преимущество во всех планах чем изучение
- Язык программирования c++
- На каком языке программирования написан C (Си)?
- Помогите решить данное задание, на языке программирования с++
- Посоветуйте легкие языки программирования, который можно изучить в 14 лет.(читать описание)
- Если изучить один язык программирования, будет ли легче изучить что-то посложнее?
- Какие отличия(простыми словами) в языках программирования Java и C++? Что лучше изучать. У какого больше возможностей?