Дмитрий Соломенников @DmitrySolomennikov
Компиляторщик, соавтор языков программирования
Information
- Rating
- 1,580-th
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Works in
- Date of birth
- Registered
- Activity
Компиляторщик, соавтор языков программирования
Спорить с анонимусом в интернете -- так себе затея, но статей по истории не так много, потому хочется встать на защиту.
Чтобы что-то оказалось фуфлом, это должно быть сделано.
60-е, 70-е годы прошлого века были великим временем для ИТ. Компьютеры едва шевелились, а люди уже пытались завести на них искусственный интеллект. По дороге исследую все, до чего могли дотянуться, и пробуя решать задачи, которые просто никто не решал, потому что не было таких задач до этого. Да, собственно, придумывая, как можно записать задачи!
И то, что позже какие-то языки "не прошли" проверку временем, не значит, что это было бессмысленно или "оказалось фуфлом". Вовсе нет. Эти исследования выполнили важную роль, подтолкнули других авторов в их движении, в их идеях.
Многим и сегодня полезно почитать статьи тех времен, некоторые из которых совершенно не устаревают и вряд ли устареют.
Мне, например. Если вам что-то другое интересно, а эта тема не зашла, пройдите мимо, не топите автора.
Языки-потомки Forth, конечно, своеобразны. И работа через стек требует сноровки и насмотренности, согласен. Но в определенных условиях это оправдано, плюсы определенно есть.
Решается документацией, в шапке указывается сколько снимается со стека и сколько возвращается в стек. Не знаю, правда, как это сделано в TON.
Добавил в статью ссылку на краткий вводный материал с примерами.
То есть к Lisp реализации вопросов не возникло? Очень хорошо!
Стандарт, но не везде.
Спасибо большое за наводку, очень интересный язык!
Кому как. Многие IDE вообще не запускают :)
В mc комбинация ESC-i открывает тот же каталог на другой панели, ESC-o открывает каталог выше текущего на другой панели.
Ctrl-u обменивает панели. Если у вас не работает, возможно, что эту комбинацию "съедает" оконный менеджер, либо в настройках терминала надо посмотреть, может эта комбинация используется.
Кроме того, в MacOS часть настроек делается в настройках терминала.
В гранит! :)
Прекрасное дополнение, спасибо!
А должны? Прямо вот каждый, кто приходит в область строительства языков и компиляторов должен сказать что-то новое? Понятно, что часто, в силу отсутствия опыта у авторов зашкаливает ЧСВ и хочется завоевать мир. Но если не копировать существующее, не пытаться предложить что-то свое, не обязательно новое, но именно свое, то и нового не будет.
В этом то и проблема. У большей части языков есть владелец. Когда вы хотите послать свой патч в репозиторий, обычно (не всегда, но довольно часто) вы подписываете соглашение, в котором прямо прописано, что вы отказываетесь от владения своим патчем в пользу владельца репозитория.
Формально выходит, что являясь автором патча и соавтором языка/библиотеки, владельцем кода вы не являетесь.
Форкнуть можно. Но это по прежнему будет Раст. Чтобы это был Раст+ нужно делать что-то еще, помимо просто форка.
Может быть.
ACM Turing award lectures, Reflections on trusting trust, Ken Thompson, 1984
https://dl.acm.org/doi/pdf/10.1145/1283920.1283940
Не то, чтобы совсем ничего не делалось, так говорить тоже неверно, выше уже приводили ссылки и фамилии.
Но проблема действительно есть, ВУЗам эта тема не очень интересна, хотя наукоемкость у нее высокая, как мне кажется.
Дайте ссылку, пожалуйста, интересно посмотреть.
Поясните, пожалуйста, что это такое, гугление показывает разное :)
Как раз поэтому я написал про творчество. Определенный максимализм присутствует почти во всех новых работах. Но ведь это и неплохо! С другой стороны, ЧСВ задирается во многом оттого, что сначала совершенно неясен объем предстоящей работы, мол "Я сейчас как ух! Я сейчас как эх!" и в омут с головой. Большинство (из виденных мной) ребят несколько успокаиваются, часть уходят, остальные уже трезво оценивая работу, начинают делать более адекватные вещи, сужая семантику языка, упрощая компилятор и т.д.
Важно, чтобы эта работа велась, откуда специалистам то появляться?
При этом ни один язык, который пророчили на эту роль, поправьте меня, если я ошибаюсь, не постулировал то, на чем основывается С++:
Как следствие, эти языки решали другие задачи.
Я бы дополнил. Современный язык программирования, это прежде всего, инструмент для решения определенной задачи. Инфраструктура и тулчейн важны, если их требует задача. Хорошая поддержка в IDE, отладка, пакетные менеджеры и т.д. нужны не всегда, но если говорить про языки, претендующие на роль языков общего назначения, то да, инфраструктура и инструменты точно должны быть, как минимум в обозримых планах.
Oracle уже блокировал доступ к Java, например.
Возможет такой вариант. Лицензия, скажем, Go, дополняется пунктом, что скачать с сайта дистрибутив и использовать его для разработки можно, только если вы делаете открытый проект, а если вы пользователь из России и продаете свой софт, тогда вам нельзя этим дистрибутивом пользоваться.
Инди-разработчики выведены из под удара, а международный бизнес - нет. И это - серьезно. Потенциальный покупатель просит подтверждение того, что вы соблюдаете международное законодательство, вы его предоставить не можете, сделка срывается.
А покупатель не пойдет на такое нарушение, потому что у него свои регуляторы, ему внутри ЕС или США прилетит такой штраф, что дешевле отказаться.
На одной из конференций коллеги рассказывали про отдельный проход в компиляторе, который искал группу инструкций в коде по поведенческому шаблону и заменял их на одну инструкцию, выполняющую ту же функциональность, но на аппаратном уровне. Инструкция заменяла в том числе и несколько бранчей сразу.
Это, с одной стороны, очень похоже на щелевую оптимизацию, с другой стороны, там инструкции шли не подряд и просто по шаблону их было найти нельзя, проводился дополнительный анализ семантики.
Речь про ARM-based процессоры. Найти запись выступления, к сожалению, не смог.
Вы правы, так тоже бывает, но обычно это хорошо видно. Я больше говорю о ситуациях, когда публикуется уже существующее работающее решение, а его закидывают помидорами просто потому что.
Спасибо большое, очень интересная тема!