Pull to refresh
64
1.2

Programmer

Send message
Я говорю о том, что все это безусловно интересно и полезно только теоретически, для математики. А в реальной жизни вы будете кодировать цифры палочками и вычислять факториал десяти с помощью 4 миллионов лямбд?
В академических функциональных языках есть немало интересных концепций, которые многим «обычным» программистам даже и не понять. Но их нужно вытаскивать оттуда и адаптировать для классического кодинга. А не то получится очередной оберон, вещь в себе:)
Я именно об этом и говорю
Так о чем и речь:) Нужно продраться через все эти скобочки и вытащить наружу ценные идеи, трансформировав их в понятный для большинства и удобный для практического применения вид — те же лямбда-функции в гибридных языках как я понимаю именно оттуда.
Да, язык действительно странный:)
Очевидно что там действиьельно много интересного, но для практического применения все это нужно вытаскивать и адаптировать.
Вообще-то хороший пост для первого апреля:)
Данные операторы работают в любом компиляторе С++, даже в самом древнем, и основаны на том что операторы смены знака и битовой инверсии, записанные друг за другом, дают именно такой эффект — увеличение или уменьшение числа на единицу (в зависимости от порядка следования).
Я имею в виду скорее отсутствие модульности в самом языке, и необходимость использовать архаичную систему инклудов. DLL — это фича операционной системы, от языка тут может потребоваться только поддержка (возможно библиотечная), реализация уже есть во всех ОС.
устроим баттл между сторонниками оберона и mumps :)
Ну что можно сказать по результатам всех этих статей про Оберон…
Конечно, такие олдскульные системы имеют свое олдскульное очарование. Конечно, хорошо когда есть разнообразие, когда есть альтернативные ОС и языки. И конечно, хорошо что есть люди, которые этим занимаются.
С тезисом о том, что из-за малого количества языковых фич программы якобы получаются надежнее, я конечно же не согласен. В языке есть все небезонасные фичи — такие как указатели например, значит уровень надежности у него такой же как у Си. И уж конечно отсутствие цикла foreach не делает язык безопаснее:)
У меня есть свое видение, каким должен быть язык программирования, и оберон скорее антипример. Но единственное что пожалуй стоит взять из оберона — это модульность, не как реализацию а как идею скорее. Во всяком случае это то, чего реально не хватает в С/С++.
Хоть какие-то технические подробности:)
Возможно что-то связанное с консервацией собственных стволовых клеток, чтобы их можно было в будущем использовать? Или смысла нет и технологии все равно опередят любые попытки сделать что-то сейчас?
Лучше чем предыдущие статьи про Оберон, которые были здесь. Спасибо.
У вас там процедура ASR2 вложенная (nested) в процедуру Update. А скажите, происходит ли захват переменных? Доступны ли локальные переменные Update из ASR2, и сохранятся ли они, если из Update вернуть адрес ASR2?
Самый главный вопрос — что можно сделать для будущего бессмертия сейчас простому человеку?
Когда в языке есть eval(), умеющий выполнять программы в виде строк, остальное неважно — хоть в дерево эти строки подвесить, хоть в список, хоть в циклический буфер:) Но это когда язык интерпретируемый. Если язык компилируемый, то для eval() программе нужно или тащить с собой компилятор (что совсем неразумно) или — что разумнее — иметь встроенный скриптинг на скриптовом языке и интерпретатор этого языка в виде библиотеки. Хотя языковая поддержка для таких вещей все равно желательна — например для прозрачного доступа к объектам компилируемого языка из скрипта.
Непривычный синтаксис усложняет понимание. Это примерно то же самое как в статьях, в которых пытаются объяснить что же такое монады, используются примеры на Haskell. Возможно, внутри Haskell это даже достаточно простая и естественная концепция, но когда смотришь на код, мозгу с непривычки не за что зацепиться:)
Это называется eval. Тоже метапрограммирование, но другое, применимое в основном для интерпретируемых языков.
Не все компиляторы C++ основаны на AST. Главный пример такого динозавра — это MS Visual Studio

А где можно с этим ознакомиться подробнее? (интересно, на чем же он основан тогда?...)
Меня интересуют в первую очередь си-подобные языки. Ну и конечно всего не охватить в одной статье… хотя конечно Rust можно было упомянуть, я просто не успел еще разобраться с его макросами. По Rust (как и по Nim) на данный момент крайне мало документации, надеюсь в ближайшее время что-то поменяется в лучшую сторону в связи с выходом 1.0. Что же касается lisp, то это язык с сильно отличающимся от «мейнстрима» синтаксисом, этот фактор усложняет понимание.

Information

Rating
1,706-th
Registered
Activity