Дерево языков программирования: Языковое дерево. Языки программирования машинного обучения

Языковое дерево. Языки программирования машинного обучения

Похожие презентации:

Краткая история языков программирования

Языки программирования для машинного обучения

История языков программирования

Языки программирования

Эволюция языков программирования, их классификация

Введение в языки программирования

Языки программирования высокого уровня

Федеральная программа по обучению школьников 8-11 классов современным языкам программирования

Языки программирования высокого уровня

Классификация языков программирования

1. Языковое дерево

Языки программирования
машинного обучения
Lua
Torch
TensorFlow
Caffe
Theano
Python
CUDA
MatLab
Java
C ++
Pascal
C
Язык программи́ рования — формальный язык,
предназначенный для записи компьютерных программ.
Язык программирования определяет набор лексических,
синтаксических и семантических правил, определяющих
внешний вид программы и действия, которые выполнит
исполнитель под её управлением.
высокоуровневый язык программирования общего
назначения, ориентированный на повышение
производительности разработчика и читаемости
кода. Синтаксис ядра Python минималистичен. В то же
время стандартная библиотека включает большой объём
полезных функций.
Python-(в русском языке распространено название пито́н)
Java — сильно типизированный объектно-ориентированный
язык программирования, разработанный компанией Sun
Microsystems. Приложения Java обычно транслируются в
специальный байт-код, поэтому они могут работать на
любой компьютерной архитектуре, с помощью виртуальной
Java-машины. Изначально новый язык программирования
назывался Oak (James Gosling) и разрабатывался для
бытовой электроники, но впоследствии был переименован
в Java и стал использоваться для написания апплетов,
приложений и серверного программного обеспечения.
Cкриптовый язык программирования,
разработанный в подразделении Tecgraf
(Computer Graphics Technology Group)
Католического университета Рио-де-Жанейро
(Бразилия). Интерпретатор языка является
свободно распространяемым, с открытыми
исходными текстами на языке Си.
MATLAB — пакет прикладных программ для решения задач
технических вычислений и одноимённый язык
программирования, используемый в этом пакете. Пакет
используют более миллиона инженерных и научных
работников, он работает на большинстве современных
операционных систем, включая Linux, Mac OS, Solaris и
Windows.
MATLAB широко используется в таких областях, как:
-обработка сигналов и связь,
-обработка изображений и видео,
-системы управления,
-автоматизация тестирования и измерений,
-финансовый инжиниринг,
-вычислительная биология и т.п.
MATLAB по сравнению с традиционными языками
программирования (C/C++, Java, Pascal, FORTRAN) позволяет
на порядок сократить время решения типовых задач и
значительно упрощает разработку новых алгоритмов.
C++ — компилируемый, статически типизированный язык
программирования общего назначения. Поддерживает
такие парадигмы программирования, как процедурное
программирование, объектно-ориентированное
программирование, обобщённое программирование
открытая программная библиотека для машинного
обучения, разработанная компанией Google для решения
задач построения и тренировки нейронной сети с целью
автоматического нахождения и классификации образов,
достигая качества человеческого восприятия[1]
Применяется как для исследований, так и для разработки
собственных продуктов Google. Основное API для работы с
библиотекой реализовано для Python, также существуют
реализации для C++, Haskell, Java, Go и Swift.
MATLAB-подобная библиотека для языка
программирования Lua с открытым исходным
кодом, предоставляет большое количество
алгоритмов для глубинного обучения и научных
расчётов. Ядро написано на Си, прикладная часть
выполняется на LuaJIT, поддерживается
распараллеливание вычислений средствами CUDA и
OpenMP.
Библиотека численного вычисления в Python[1]. Вычисления
в Theano выражаются NumPy-ским синтаксисом и
компилируются для эффективных параллельных вычислений
как на обычных CPU, так и на GPU.
Среда для глубинного обучения, разработанная Янцином Цзя
(Yangqing Jia) в процессе подготовки своей диссертации в
университете Беркли. Caffe является открытым
программным обеспечением, распространяемым под
лицензией BSD license.[4] Написано на языке C++, и
поддерживает интерфейс на языке Python.[5]
Программно-аппаратная архитектура параллельных
вычислений, которая позволяет существенно увеличить
вычислительную производительность благодаря
использованию графических процессоров фирмы Nvidia.
R — язык программирования для статистической обработки
данных и работы с графикой, а также свободная
программная среда вычислений с открытым исходным
кодом в ра.
R позволяет перерабатывать сотни миллионов данных, у
него огромное сообщество, большое количество библиотек
и он прост в изучении.
Паска́ль — один из наиболее известных языков
программирования, используется для обучения
программированию в старших классах и на первых курсах
вузов, является базой для ряда других языков.
Особенностями языка являются строгая типизация и
наличие средств структурного (процедурного)
программирования. Pascal был одним из первых таких
языков.

English     Русский Правила

Дерево умений. Муки выбора или что учить программисту. — Be cool admin

Я знаю, что я должен теперь делать, я должен продолжать дышать, потому что завтра взойдет солнце. Кто знает, что может принести волна? – х/ф «Изгой».

Часть дерева умений из игры «Path of Exile»

Заметка об умениях, навыках, играх и программировании. У каждого из нас свой определенный запас знаний за плечами и по правилам РПГ иногда происходит такой момент, когда накопленные таланты открывают бесплатный доступ к новым умениям практически бесплатно.

Если же посмотреть на такое дерево сразу, то можно ахнуть от всего, что нужно будет в себя впитать. Парализующий страх, наверное похожий на тот, когда вы смотрите на огромную гору еды, а голос из-за спины говорит, что это всё придётся съесть, правда голос не договаривает, что за один раз всё это есть совсем не обязательно.

Первый живой микроконтроллер попал мне в руки лет 5-6 назад, волнительное чувство, хотя по стоимости он конечно значительно уступал даже не топовым процессорам на компьютер. С одним лишь отличием, его можно было испортить значительно проще, чем х86. А ещё его нужно было программировать с помощью Си или ассемблера, которых на тот момент я абсолютно не знал. И ещё нужны были прямые руки, чтобы паять обвязку. Поэтому как вы могли бы догадаться, после первых экспериментов микроконтроллер с остальной электроникой отправился в ящик, чтобы целее был.

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

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

Таким не хитрым образом образовался один из необходимых навыков для понимания того, что происходит с микроконтроллером и его обвязкой. (На самом деле нет предела совершенству и в этой области при желании можно ещё многому научиться, но для первого времени вполне хватает). Если бы я этого не знал, был гуманитарием, прогуливал бы физику, никогда бы в руки не попадал бы мне паяльник, то сколько бы времени потребовалось бы на то, чтобы понять эти основы? Даже мне сложно ответить на этот вопрос, но я бы предположил бы, что от пары месяцев до года, в зависимости от глубины знаний.

Программированием в том или ином виде я занимался давно, но бессистемно и с большими перерывами, не считая последних четырех лет.

Basic для ZX-Spectrum сменился на qbasic для DOS, затем были скрипты для того же DOS/Windows, потом перерыв и верстка страниц на HTML, потом прошло ещё прилично времени, прежде чем я осознал, что хочу программировать, конструировать и развиваться. Время не стояло на месте и мир за почти 20 лет сильно изменился. Поэтому пришлось накапливать знания снова, при этом на тот момент я думал, что умею программировать, что это просто, что стоит взяться и я смогу. Привет «С за 21 день», «питон за неделю», «выход на работу через пол года». Днём я работал, а вечером находил время и старался разбираться с кодом. На самом деле в самом начале было трудно — даже с установкой некоторых программ, модулей приходилось возиться долго. Именно поэтому некоторые книги с около-нулевым порогом вхождения так много уделяют места на установку языка программирования и окружения (которое могли бы потратить на что-то ещё). В отличии от этого есть книги более ознакомительного характера вроде «7 баз данных за 7 недель» и «7 языков программирования за 7 недель», только нужно учитывать, что когда вы будете браться за те книги, то очень многое останется за их пределами, вы должны будете находить нужную информацию самостоятельно, ну и знать к тому времени вы тоже должны хоть что-то хотя бы на одном языке программирования.

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

Именно в тот момент, я понял, что кросс-платформенная разработка может быть сложной. Но мир на тот момент уже не ограничивался одной Windows, перепробовав кучу разных систем от маленькой Коллибри, ретро-версий windows, Windows CE (для нетбука), Haiku, AROS (выход AmigaOS на x86 платформу). В конце — концов, я понял что это интересно, но моих знаний на тот момент явно не хватало для того, чтобы влиться в открытые сообщества и приносить им какую-то помощь. Мне хотелось чего-то нового, интересного. К тому времени linux уже был известным, бесплатный и гибким инструментом для разработчиков и системных администраторов. Всё это немного отвлекало от программирования, но по итогу дало возможность смотреть на платформу как инструмент со своими плюсами и минусами.

Ушло на это дело добрых несколько лет с переменными успехами и не удачами, причем ошибки часто заставляли и заставляют копаться в предметной области гораздо глубже, чем удачи. Одной из такой ошибок было невозможность установить на тот момент современный linux на AMD-K6-2, так как ядро уже не поддерживало столь старый процессор. А сколько было потрачено времени на сборку linux from scratch словами не передать, но это было интересно, полезно и убирало страх перед новыми технологиями. (Между тем, этот блог начал свое существование именно в то время).

Linux позволило посмотреть на разработку с другой, немного отличной от Windows стороны на программное обеспечение и разработку. Плюс я получил навыки работы в этой среде. Это было несомненно важным умением, но я всё ещё не программировал.

Казалось бы, вот сейчас уже можно заняться программированием, но именно в тот момент, я смог наглядно заметить и убедиться, что русскоязычные мануалы сильно отставали от англоязычных. А знания английского языка у меня оказались довольно посредственными, хорошей новостью было то, что говорить и писать на английском для моего дела совсем не обязательно, даже слушать речь — это уже второстепенная задача. Поэтому отложив книги по программированию в сторону, я принялся за изучение английского. И довольно быстро, всего за каких-то дней сто, не учитывая пару испорченных попыток начать изучение достиг возможности более -менее что-то читать, понимать, иногда при этом заглядывая в словарь. На самом деле английский бывает разный — американский, британский, европейский и многих других стран, поэтому набор используемых слов иногда может вводить в ступор. Зато потом получаем тот минимум, который позволит обращаться к англоязычным ресурсам ( книгам, форумам, чатам, подкастам).

И через какое-то время я вернулся к языкам программирования. Постепенно у меня менялись представления об этой профессии, но поток информации вокруг он огромен — он кричит:» Только путь Х верный, только книга Y приведет тебя туда, куда ты идешь, только язык Z — может сделать то, что тебе нужно». И множество других спорных утверждений. Только посмотрите на вверх списка популярных языков, по мнению hh.

Популярные языки программирования 2019 от пользователей hh.ru

Что из этого выбрать новичку? С чего начать, какой язык поможет продвинуться и получить желаемое? Выбрать очень не просто, понять что нужно учить не только язык Х, но само программирование ещё сложнее. Если нет человека, который сможет по началу вам помогать разбираться задача становится мучительной. На выбор языка очень сильно может влиять среда, так веб-разработчики будут советовать одни языки, кто занимается ИИ другие, те кто ближе к железу третьи, и так до бесконечности. Потому что если бы был язык который с легкостью может решать все задачи, то люди уже давно бы оставили один из всех и не мучали бы выбором новичков.

Иногда выходят и такие интересные книги по программированию.

Даже если вы выбрали язык, то не всё так очевидно, вроде как PHP5 и PHP7, которые продолжают существовать вместе (хотя более новые версии всё же вытесняют старый код и книги). Или Python 2 и 3, Perl 5 и 6, и это скорее всего далеко не весь список языков, которые с виду похожи друг на друга, но имеют массу отличий, а иногда как Perl 5 и 6 — являются вообще разными языками, с очень схожим названием. Точно так же люди с радостью смешивают С/C++ и даже C#, Java и JavaScript. А что если язык привязан к платформе, например Swift — довольно сильно привязан к архитектуре Apple. Или C#, который лучше всего чувствует себя на Windows. Возможно, не стоит сразу тратить деньги, а стоит попробовать что-то из доступных, бесплатных средств.

Примерно в схожей ситуации находится любой новичок, желающий начать изучение программирования. Что же делать? Есть несколько методов — отправиться в университет/техникум, отправиться на курсы, заняться самостоятельно.

Первый метод я откинул из-за того, что и так уже несколько раз учился в ВУЗе, поэтому примерно представлял какой процент информации по специальности он мне даст, плюс время которое придётся тратить ежедневно, отсутствие нужной специальности в местности, где я тогда жил, ну и то, что очередной диплом можно будет получить лишь заплатив за него деньги, а заочная форма добавит ещё целый год обучения. Если вы молоды, энергичны и ещё не имеете высшего образования, то сходить конечно стоит, но учитывайте, что многое придётся находить самостоятельно.

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

О платных курсах я имею немного смутное представление, так как финансово не особо мог себе это позволить. Так что тут выбор за вами идти на те или иные курсы или нет.

В сухом остатке остается самообразование — книги, библиотеки, подкасты, блоги. Вне зависимости от того чем вы хотите заниматься дальше желательно добавить побольше фундаментальных книг — от простого «Кода» Петцольда, до возможно Кормена и Таненбаума. И это всё ещё не про программирование.

Можно взять язык разметки HTML добавить к нему современный CSS, и начинать осваивать программирование с этого этапа, постепенно прикручивая к этому Python, Perl, PHP, JS, C#, Java или другой язык.

Другой вариант — это взять декларативный язык, вроде SQL, и научиться писать простые запросы.

Третий вариант — взять один из языков программирования и начать знакомство с одним из них.

Изначально я выбрал третий путь (периодически добавляя и другие). Моим первым осознанным языком был Python — Zed Shaw «Learn python the hard way», на тот момент существовала лишь версия по второму питону и она была бесплатной, но на английском языке. Без знания английского было сложно, но я старался, некоторые концепции давались крайне сложно. Продержался я чуть больше недели и бросил. Потом был bash и лекции по системному администрированию от Яндекса.

Примерно в это время я стал больше читать, значительно больше, после университетского перерыва. Сначала было сложно, но потом втянулся. Главное давать своему мозгу отдых и не читать, потому что нужно читать. Программирование всё ещё было в зародыше. Я наткнулся на какой-то сайт, где люди ставили себе цели, а потом показывали как их достигают, тогда же я открыл для себя Лутца. Для первого учебника он очень зануден, льёт много информации, поэтому до конца я его так и не дочитал отложив где-то на середине. После этого были попытки выучить С. Классический язык, немного команд, позволяющий заниматься системным программированием, но… те книги которые мне попадались были не достаточно хороши, а язык после python, казался каким-то не таким, сложным, суровым к ошибкам. Я дошел до указателей в книге Zed Shaw, и понял, что упёрся в потолок, который не могу понять. Где- то в этот промежуток я грызу Learn to program (Ruby) , CS50, «Выразительный JS», но книгам чего-то не хватает, чтобы меня зацепить — хотя это три отличные книги по программированию.

Обложка учебника по Ruby

Чуть позже потрогал ассемблер, но не совсем понимал зачем он может быть нужен и что с ним делать. Зато уже тогда понял, что он гораздо сильнее «завязан» на марку процессора, чем языки более высокого уровня. И в миг, когда я был близок к отчаянию мне в руки попадает книга «Изучаем Perl» за авторством Рэндал Л. Шварц, Том Феникс, Брайан Де Фой.

Как бы не улыбались мои коллеги, подшучивая о том, что Perl — умер (на самом деле он жив, и поставляется со многими linux дистрибутивами, на нём пишут системные администраторы, а программисты создают сайты, конечно не в таком количестве как на PHP, но всё же).

Минутка рекламы Perl. Чем же так хорош язык и книга? Книга наполнена примерами, а язык в книге живой и лёгкий (особенно после Лутца). Perl — скриптовый язык, который довольно легко смотрит на ваши ошибки, позволяет писать в разных стилях, визуально местами похож на С. Потом ещё смотрел лекции от mail и становилось всё более понятным.

После Perl было уже не так страшно. Я жаждал новых знаний, я возвращался к тому, что забрасывал — Python, C, JS. К чему-то новому C#, C++, PHP. Увлекательное путешествие, которое продолжается. В этом помогали уже полученные знания.

Параллельно к этому я читал «Совершенный код» Макконнелла, Таненбаума «Современные операционные системы» и «Архитектура компьютера», а также некоторые другие книги, которые проливают свет на многие вопросы, и к которым можно время от времени возвращаться.

Прошло много-много времени от того момента, когда я в первый раз установил Python на свой компьютер, до того момента, когда увидел вакансию инженера-программиста микроконтроллеров.

Моя реакция от того, что всё выглядит довольно крутым, до момента, что это совсем другое «поле битвы» сменилось довольно быстро. Мир микроконтроллеров. Смогу ли я? Я долго думал, пару дней, пока вакансию снова не подняли в топ. Мне предложили отправить резюме, пришлось его править, а самое главное искать способ как потрогать микроконтроллеры. Не очень хочется быть самозванцем, хочется отвечать за каждое слово в своём резюме.

Поиск по интернету, разговор со знакомыми приводят меня к тому, что мне нужен эмулятор, а также один из компиляторов для микроконтроллеров. При этом я осознаю, что время играет против меня, поэтому заметив, что на моей linux машине sdcc не собирает код как надо, я решаю выбрать в качестве среды MPLAB, а в качестве компилятора XC8 опять же от Microchip, но при этом приходится работать на windows. Велика ли цена? Скорее всего нет, так как настроить windows в данном случае оказалось проще.

И вот в этот момент пазл быстро начинает складываться в новое умение. Схему довольно легко и просто собрать в Proteus, нужно лишь найти/перевести название детали в библиотеке, так как русские названия элементов отличаются от международных. А сам метод ввода едва ли сильно отличается от других cad систем / либо градостроительных игр.

Таненбаум примерно заложил понятия о том, что такое микроконтроллер, плюс после поисков в руки попала книга «PIC Microcontroller Projects in C Basic to Advanced» Dogan Ibrahim, а также активно использовать разные сайты, как mirochip, так и энтузиастов вроде https://simple-circuit.com. Хотя некоторые вопросы оставались открытыми, вроде.

// set configuration words
#pragma config CONFIG1 = 0x3F84
#pragma config CONFIG2 = 0x1613

Каким образом им удается записать конфиг в таком компактном виде, ведь в инструкции по адресу C:\Program Files (x86)\Microchip\xc8\v2.10\docs\pic_chipinfo.html нет ничего похожего на эту запись. Покосмотрев в datasheet я тоже не нашёл нужной информации, пока не стал более внимательно изучать IDE.

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

Ко всему этому стоит отметить умения поиска информации, чтения книг и мануалов. Знания как искать чаты по теме, задавать там вопросы так, чтобы вам отвечали. И конечно при всём при этом логически её складывать, так чтобы после прочтения можно было не только повторить (на самом деле для начала повторение того, что уже сделано другими людьми — это уже успех), но и возможность создавать что-то новое самостоятельно.

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

Стив Джобс говорил: «Есть только один способ проделать большую работу — полюбить её. Если вы к этому не пришли, подождите. Не бросайтесь за дело. Как и со всем другим, подсказать интересное дело вам поможет собственное сердце.»

Понравилось это:

Нравится Загрузка…

Семейные спагетти языков программирования

Создано:
Обновлено:


← Вернуться к оглавлению

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

Последняя версия.

Вот исходный код. Я уверен, что он полон ошибок, поэтому, пожалуйста, просто присылайте исправления, патчи и опечатки % base64 -d <<< 'bWFpbHRvOm1lQGVya2luLnBhcnR5' и я обновлю этот пост. Также вы заметите, что сплайны идут абсурдно окольными путями в график. Это Graphviz делает все возможное, чтобы понять это колоссальный бардак. Если вы знаете лучший способ сделать это, дайте мне знать.

Errata: Я хотел бы поблагодарить

  • Thra11 из Lobste.rs за указание на то, что D спускается из С++, а не из С.
  • Марк Пакетт за указание на то, что я должен включить ABC как влияние Python и позволив мне использовать его исследования по генеалогия ракушек. (См. ниже.)
  • Джонатан Андерссон за указание на то, что Newsqueak не язык малых разговоров.
  • Райнер Йосвиг за указание на то, что Logo старше, чем Схема, поправляющая меня о версиях XLISP и отправляющая мне полезный график по истории диалектов Лиспа. (См. ниже.)

Фон

Языков программирования очень много. Много. Списки Розеттского кода 714 из них, на дату публикации. Так же, как человеческие языки, их действительно трудно нанести на генеалогические деревья, потому что они постоянно развиваются и имеют многочисленные диалекты различного взаимного разборчивость, неформальные диалекты, различные несовместимые версии и разные реализации.

Однако, в отличие от естественных языков, языки программирования имеют значительно более проблемное свойство, которое делает их почти невозможными чтобы аккуратно свести в красивые графики: они построены произвольно. А естественный язык просто происходит от предшествующего языка, а языки формировать деревья. Конечно, межъязыковое влияние широко распространено (и давайте не забывайте, что есть пиджины, креолы и, конечно же, сконструированные языки). Даже тогда это все еще вполне возможно (если не осуществимо) чтобы проследить предка каждого языка назад.

Причина, по которой отслеживание генеалогических корней невозможно в программном обеспечении, заключается в следующем. просто потому, что мы "неорганически" берем отсюда различные влияния и там и лепить целый новый проект. Это становится особенно более проблематично с новыми мультипарадигмальными языками, которые что-то заимствуют от всех! При заимствовании нескольких слов из другого языка не совпадает с родословной естественного языка, заимствуя значительную количество семантики или синтаксиса из другого языка полностью меняет родословная языка программирования.

Например, спросите себя: откуда взялся Python? Графики, которые я нашел онлайн дал мне разные нелепые ответы, такие как C, Perl и даже Джава. Конечно, вы говорите себе, что ответ ABC, не так ли? КЛУ? Не совсем. Как насчет Руста? От куда это? Ответ, к сожалению всего понемногу.

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

Генеалогическое древо функционального программирования Дэна

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

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

Оригинальная красота тарелки пикантных спагетти.

К сожалению, я сдался на полпути и законсервировал его в сингле. Graphviz и полностью забыл о нем к октябрю.

Буквально сегодня я заново обнаружил это в случайном хламе, который я спрятал. мой гоферспейс. Я привел это в #лобстеры и рассказал о том, как я это сделал. К моему большому удивлению, люди поощряли мне сделать из этого пост в блоге. Итак, вот и все.

Методология

Вы, наверное, догадались, что я плохо разбираюсь в хорошей части эти языки, ни их исторические корни. я выбрал самое простой метод и просто спросил людей, которые и проконсультировались могущественной информационной супермагистрали, когда это не удалось. В Википедии есть разделы «влияния» и «влияния» в инфобоксах программирования языковые статьи, как у художников и философы. К сожалению, это довольно слабо о том, что может быть учитывал влияние, поэтому мне пришлось немного сузить его с помощью независимых исследовать. Языки, открыто описывающие себя как основанные на один язык является лучшим в этом аспекте.

Я считал выбор дизайна с момента рождения языка более важным чем более поздние дополнения, даже если их медленно затмевали иностранные влияет на более поздние версии. В конце концов, я включил много незначительных языков и за исключением столь же многих значимых языков.

Несколько заметок

Лисп

Является ли Лисп одним языком? Являются ли фрагментированные Лисп "диалектами" от Лиспа Эпоха машин разделяет языки? Являются ли языки CLOS и Loops вообще, как некоторые графики намекают? Является ли Racket реализацией Scheme или языком, основанным на Scheme, сам по себе? (Конечно, на эти вопросы нет однозначных ответов. Ведь язык это диалект с армией и флотом!)

Честно говоря, Lisp был особенно проблематичным, поскольку самые последние версии Lisp'ов могут быть считается происходящим от Common Lisp и Scheme одновременно, что вообще ничего не говорит. Например, PicoLisp и Carp классифицированы как производные от Common Lisp, но на самом деле они полностью независимые проекты. Редактировать: В итоге я прикрепил их к ныне универсальному узлу "Lisp".

Райнер Йосвиг прислал мне этот чрезвычайно полезный график по генеалогии Лиспа, который я мог бы использовать чтобы переписать эту ветку позже.

Основы

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

Снаряды

Это было самым болезненным. Существует множество различных оболочек Unix. реализации там с совершенно разной степенью совместимость, и почти невозможно сопоставить их в аккуратное дерево. Так что в итоге я удалил 80%.

Позже я использовал отрывки из книги Марка Пакетта. родословная раковины проект по переписыванию этой части с различными модификациями. Спасибо, Марк!

Оба изображения и исходный файл находятся под лицензией CC-BY-SA 4.0.

История компьютерных языков

История компьютерных языков

История компьютерных языков

Компьютерные языки Timeline

Ниже вы можете увидеть предварительный просмотр истории компьютерных языков (переместите белую зону, чтобы получить увеличенное изображение):

Если вы хотите распечатать эту временную шкалу, вы можете бесплатно загрузить один из следующих PDF-файлов:

А4 Письмо Плоттер

В моей таблице указано только 50 языков, если вы не нашли «свой» язык, см. Список языков из Билла Киннерсли (он перечислил более 2500 языков). Вы также можете посмотреть на Онлайн-историческая энциклопедия языков программирования (8945 языков программирования).

Вот журнал изменений этой истории.

Примечание: Теперь у меня есть страница, на которой я объясняю, как построить эту диаграмму.

Еще одна диаграмма на стене

Если вы повесили эту схему на стену своего офиса и сделали фото его, пожалуйста, пришлите мне копию, и я размещу ее на этой странице. 😉

Мои другие карты:

  • История UNIX.
  • История Windows.
Некоторые полезные ссылки

История программирования
языков в Википедии

  • Азбука
    • Краткое введение в язык ABC
  • Ада
    • Домашняя страница Ады
    • АдаПауэр
    • Специальная группа по интересам на Аде
    • Информационный центр Ады
    • АдаКор
  • АЛГОЛ
    • Язык программирования АЛГОЛ
    • История Алгола
  • АВК
    • Язык программирования AWK Альфреда В. Ахо, Брайана В. Кернигана и Питера Дж. Вайнбергера
  • АПЛ
    • Язык АПЛ
    • АПЛ
  • Б
    • Язык программирования B (аннотация)
    • Ссылка пользователей на B Кена Томпсона
  • БАЗОВЫЙ
    • Инстинкт Visual Basic
    • Ресурсы Visual Basic и Visual Basic .NET
    • Настоящий БАЗОВЫЙ
  • БЧПЛ
    • Справочное руководство BCPL Мартина Ричардса
  • С
    • Разработка языка C Денниса Ритчи
    • Очень ранние компиляторы C и язык Денниса Ритчи
    • Язык программирования C (книга)
    • JTC1/SC22/WG14 - C по ISO/IEC
    • Курс программирования на С
  • С++
    • Язык программирования C++ Бьярн Страуструп
    • C и C++: братья и сестры (pdf) Бьярн Страуструп
  • С#
    • Язык Visual C# от Microsoft.
  • Камл
    • Язык Caml
    • OCaml
    • Система Objective-Caml
  • КЛУ
    • Домашняя страница CLU
  • КОБОЛ
    • Семейство IBM COBOL
    • Портал КОБОЛ
    • Крошечный КОБОЛ
    • Группы пользователей COBOL — COBUG
  • КОРАЛЛОВЫЙ
    • Коралл 66 (Википедия)
  • CPL
    • Основные характеристики CPL By Barron, Buxton, Hartley, Nixon and Strachey
    • Комбинированный язык программирования (Википедия)
  • Делфи
    • Делфи 10 Сиэтл
    • Краткая история Borland Delphi
    • Delphi Treff: версии Delphi (немецкий)
  • Эйфель
    • EiffelStudio от Eiffel Software
    • Visual Eiffel от Object Tools
    • SmartEiffel
    • Основные механизмы языка Eiffel by Bertrand Meyer
  • Flow-Matic
    • FLOW-MATIC (википедия)
  • Форт
    • Домашняя страница Forth Interest Group
    • colorForth от Чака Мура
  • Фортран
    • Замечания пользователя по программированию на Фортране
    • Фортран 2000 проект
    • Фортран 2003 JTC1/SC22/WG5
  • Хаскелл
    • Домашняя страница Haskell
  • Значок
    • Язык программирования Icon
    • Значок
    • История языка программирования Icon
    • Юникон, Единый расширенный диалект Icon
  • Дж
    • Программное обеспечение J
    • Перспектива управления языком программирования "J"
  • Ява
    • Java от Oracle
    • Технология Java: ранняя история
    • Языки программирования для виртуальной машины Java
  • JavaScript
    • Языковые ресурсы JavaScript от Mozilla
    • Стандарт ECMA-262
  • Лисп
    • Ассоциация пользователей Лиспа
    • Common Lisp: введение, ресурсы и часто задаваемые вопросы
  • Грот
    • Языковое руководство по гроту
    • Обзор внедрения грота
    • , подготовленный Стэнфордской лабораторией компьютерных систем.
  • М (МАМПС)
    • М-технологии
    • М[УМПС] Комитет по развитию
    • Что такое М-технология?
  • МЛ
    • Стандартный МЛ
    • Стандарт МЛ '97
  • Модуль
    • Модуль-2
    • Модуль-3
    • Модуль-2 ИСО/МЭК
  • Оберон
    • Оберон
    • Описание языка Оберон-2
    • Язык программирования Оберон-2
    • Древо генеалогии языка Оберон
    • Платформа сообщества Оберон
    • Язык программирования Оберон
  • Цель-С
    • Изучите Objective-C от Cocoa Dev Central
    • Часто задаваемые вопросы по Objective-C
    • О Objective-C от Apple
  • Паскаль
    • ISO Pascal от Pascal Central
    • Паскаль и Дельфи
  • Перл
    • Домашняя страница Perl
    • Личная домашняя страница Ларри Уолла
  • PHP
    • PHP: препроцессор гипертекста
  • PL/I
    • Мультикс PL/I
    • Семейство IBM PL/I от IBM
  • Планкалкюль
    • "Планкалкюль" Конрада Цузе"
  • Постскриптум
    • Уровень PostScript 3 от Adobe
    • GhostScript
    • Домашняя страница GhostScript
  • Пролог
    • Язык программирования Пролог
    • Язык Пролог
  • Питон
    • Домашняя страница Python
  • Рекс
    • Семейство IBM REXX от IBM
    • Языковая ассоциация Rexx
  • Рубин
    • Рубин Домашняя страница
    • Язык программирования Ruby (Википедия)
    • Руби — документ
  • Парус
    • Парус (Стэнфордский язык искусственного интеллекта)
  • Сазер
    • История Сатера
    • Сатер
    • ГНУ Сатер
  • Схема
    • Схема MIT
    • Пересмотренный 5 Отчет о схеме алгоритмического языка (в PostScript)
    • Домашняя страница интриганов
    • СКМ
  • Сам
    • Сам
    • Я (Википедия)
  • Ш
    • Традиционное семейство Bourne Shell от Свена Масчека
    • Korn Shell от Дэвида Корна
    • Баш из GNU
    • Зш
  • Моделирование
    • Компиляция Simula, Ян Руне Холмевик
    • Симула (википедия)
  • Малый разговор
    • Часто задаваемые вопросы по Smalltalk
    • Ранняя история Smalltalk
    • VisualAge Smalltalk от IBM
    • История Писка
    • ANSI Малый разговор
  • СНОБОЛ
    • Ресурсы Snobol4 от Phil Budne
    • Сноболь4
  • Свифт
    • Свифт от Apple
    • Быстрое сообщество
  • Ткл/Тк
    • Tcl/Tk Информация
Другие ссылки по той же теме

История компьютерных языков в Google

  • Список языков (около 2500 компьютерных языков) Билла Киннерсли.
  • Интерактивный исторический список языков программирования, составленный Диармуидом Пиготтом.
  • Языки программирования.
  • Диаграмма истории языков программирования.
  • Генеалогический проект языков программирования.
  • История языков программирования.
  • 99 бутылок пива.
  • Словарь языков программирования.
  • Википедия: Компьютерные языки.
  • Rosetta Code: сравнение задач на более чем 150 языках.
  • Руководство по технологиям: История компьютерного программирования: сравнение задач на более чем 150 языках.
  • История компьютеров: Хронология языков компьютерного программирования, для Лили .
Другие мои ссылки
  • История UNIX.
    Оставить комментарий

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    © 2019 Штирлиц Сеть печатных салонов в Перми

    Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.