Обновить
5
Александр Грязнов@osdlab

Пользователь

2
Подписчики
Отправить сообщение

О! Это тема несомненно захватывающая, но стоящая ли? Дело в том, что на данный момент, энтузиастом из Кембриджа (Великобритания) довольно впечатляюще развился проект uLsip, который из любого "чайника" может сделать Lisp-машину. Проект базируется на идее создания Lisp-машины на базе Arduino и охватывает большое количество DIY платформ.

Зачем ковыряться в прошлом, если будущее уже перед Вами? Берите любую железку и делайте из неё Лисп-машину. uLisp годится даже для Arduino Nano (хоть и практически полностью урезанный, но работает)!

Теперь, извиняюсь, но хотелось бы выругаться по содержанию статьи.

1) Есть всем известные исторические факты. История понятия AI начинается с первой Дармудской конференции 1959 года, и фактически принадлежит Джону Маккарти, собственно и являющемуся автором концепции языка - LISP. К моменту Конференции уже существовала большая группа британских и американских учёных, которые ещё со времён работы над шифровальными машинами и дешифровкой машин Enigma в период Второй Мировой Войны. Которые пришли к выводу, что Машина - не есть автомат для вычислений (Computer), а есть некоторый Альтернативный Интеллект, подобный интеллекту человеческому. А теперь самое интересное...

2) Пост относится к 2021 году , когда многие вещи, которые сейчас были не так очевидны. Я говорю о 2025 годе, когда появился Deepseek и большое количество людей стало пользоваться этими технологиями. Так вот LISP, по одной из версий, расшифровывается как "детский лепет", а это намёк на NLP. А NLP - это технология, которая лежит в основе LLM AI. NLP расшифровывается как Язык Естественной Обработки Информации. В Русском языке здесь одни гласные, поэтому эта аббревиатура на Русский язык дословно не переводится. Как и перевод AI как ИИ совсем не правомерный, с точки зрения более глубокого NLP анализа. К понятию "Интеллект" претензий никаких нет - он уже давно интегрирован в NLP Русского языка (Да, да! Deepseek с таким определением вообще не спорит). А вот понятие Atificial очень натужно переведено как "Искусственный". Наверное Нас (носителей Русского NLP) в этом понятии смущает корень - "Art", как Искусство. Но разве Вы не чувствуете разницу в NLP между понятиями "Искусство" и "Искусственный"? Поэтому, если бы Маккарти захотел вложить в понятие AI - слово "Искусственный", то, с точки зрения NLP Enhlish language лучше бы подошло слово "Nonnatural". Поэтому, например, Сбер, окунувшись в проблему, предпочитают использовать понятие - "Генеративный Интеллект".

3) К чему такое длинное лирическое отступление? В самом начале данной статьи используется термин "Естественная Обработка Языка". Пообщавшись глубоко с Deepseek, теперь то в 2026 году мы хорошо понимаем, что, по сути это очень кривой перевод или даже подмена понятия - NLP, и сути проблемы никак не раскрывает. К чему это всё? А к тому что ЯП - LISP и технология NLP, которая лежит в его основе - это фактически "дешёвый" способ общения в Машиной. Фактически Лисп понятен как для Машины так и для Человека. Он даёт способность разговаривать на одном Языке. Это "дешёвый" способ общения с Машиной, т.к. он не содержит в себе значительный вычислительных затрат, как общении с Машиной (LLM AI) c использованием Естественного для человека Языка. Более того, концепция языка LISP может быть абстрагирована от Машиной обработки совсем и использоваться для совершенствования своего личного NLP. Но как это делать то, это уже статья на отдельно взятую тему. Замечу только, что Интеллект понятие более узкое чем понятие NLP, поскольку нельзя сказать: "Интеллект Русского языка" - это звучит очень странно, поскольку Интеллект относится не к Языку, а к конкретному его носителю - Индивиду. А вот "NLP Русского языка" - звучит вполне съедобно. То есть, по-сути, "Язык" - это и есть инструмент для Естественной Обработки Информации. Машина здесь вообще ни причём!

Спасибо за отзыв! Замечу что c помощью Blockly, что лежит в основе Scratch, собственно, реализуются все базовые элементы императивного программирования. При написании транслятора Блокли для uLisp все элементы императивного программирования для Блокли на uLisp были реализованы, практически, без проблем. Проблемы возникли только при реализации функций, поскольку там каждый полученный результат был из неё выходом, поэтому пришлось упаковывать содержимое функции в контейнер (progn) и в части определения временных переменных - (let) в функциях что-то не задалось. А так на uLsip получается что вся императивка поддерживается ;).

Имел ввиду в сравнении с Arduino Mega. Из AVR uLisp поддерживает ещё ATmega4809 и ATmega1284, а так же AVR128DA48 and AVR128DB48 - Curiosity Nano boards. uLisp достаточно "тяжёлый" - не для tiny точно!

По поводу выбора языка программирования. Тут долгая история.
Веду кружок по робототехнике. Пытаюсь научить детей программированию. С++ - самоцель. Но опыт показывает, что программирование на достаточно высоком уровне можно давать с 1-го класса. У меня школьник с 3-го класса "рвёт" олимпиады по программированию Ардуино за счёт того, что освоил Ardublok. Но перейти к С++ не может - не тот это инструментарий для этого возраста. microPython? Там тоже не легче!
Сын в четвёртый пошёл. У него нет таких способностей как у моего олимпиадника. Но задач для Arduino мне много выдумал. Я с ним договорился, что делаю ему комфортную среду для программирования, а дальше она сам делает свои придуманные проекты, ну с подсказками конечно ;). Ardublock сразу отмёл, поскольку интуиция и опыт работы с ним говорили о том, что потом всё равно придётся эти проекты самому допиливать. Короче перебрал всё что можно было бы упаковать в Blockly: microPython, Node MCU, Espruino. И остановился на uLisp, который изначально не воспринимал в серьёз. Однако это оказалось самым адекватным решением для ребёнка. В итоге Работаю над АрдуЛисп чуть больше года. Не всё там пока работает как надо, в процессе, но то что уже получилось самого меня впечатляет. uLisp залюбил и пытаюсь интегрировать его в другие проекты... А в скобочках есть особая магия, которую можно использовать для прокачки собственного NLP, но это уже совсем другая история ;)...
P.S. Мой олимпиадник уже в 5-м классе, а это означает, что он попадает уже в старшую группу, а тут нужно соревноваться, в том числе, с 11-классниками (со средней группой у нас не заморачиваются). Отучаю, помаленьку от Ardublock в сторону АрдуЛиспа, моя задача в том, чтобы к весне он смог тоже "порвать" эту категорию. Олимпиадные задачи для Ардуино достаточно простые из-за того что С++ тяжело даётся. Нужен адекватный инструментарий. Поэтому - всё реально!

Вот тут эту тему уже поднимали на профессиональном уровне. Вывод: АрдуБейсик - не очень приемлемое образовательное решение. Интересно использовать конструкцию goto, но в итоге автор перешёл к в выбору чистого ASMа. Возможно автору той статьи эта тема зайдёт, поскольку в uLsip, на некоторых микроконтроллерах, можно прям на ASMe в реальном режиме времени, извиняюсь, "фигачить"!

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

Понятие script в английском языке имеет более широкую нотацию, чем в русском NLP.
Да, действительно С++ и Java не являются языками для написания скриптов. С другой стороны сказать, что все интерпретаторы - это только скриптовые языки программирования тоже неправильно.
В статье под скриптом понимается написание программы на любом ЯП на латинице, что очень проблематично для детей, например, дошкольного возраста.
Из этих соображений С++ и Java - скриптовые ЯП компиляторы, а Python, Javascript, PHP - скриптовые ЯП интерпретаторы.
К нескриптовым подходам в программировании тогда можно отнести Scratch(Blockly), XOD, FLProg, HiAsm и прочее.

Информация

В рейтинге
Не участвует
Откуда
Барнаул, Алтайский край, Россия
Зарегистрирован
Активность

Специализация

Разработчик приложений, Веб-разработчик