PicoLisp и ИИ-боты

Sergey ShishkinSergey Shishkin
3 min read

Для предыдущего поста увидел, что все боты прекрасно справляются с комментированием кода. Хочу определиться с технологией выбора цитирования, какие и откуда комментарии, может ограничиться парой-тройкой ботов для “контроля качества”, но за основу взять, вообще, только один. Gemini, Chat GPT или Claude … Первый, на промт о списке функций без зависимостей, пустился в рассуждения о том, что считать встроенными функциями, а что зависимостями … а второй бодро перечислил встроенные функции без зависимостями, назвав их “чистыми“. Надо поэкспериментировать на этот предмет с третьим и тогда принять решение о комментариях.

Из списка “функций без зависимостей“ взял “с предвкушением нового открытия“ append … и обнаружил целый вейер зависимостей - loop let cdr cons car shift set setq save pair while atom eval ++ ? Так что придется “функции без зависимостей” искать самостоятельно, “руками и глазами” …

   (NIL "append" _Append)

global.l

# (append 'lst ..) -> lst
(de _Append (Exe)
   (let X Exe
      (loop
         (? (atom (cdr (shift X)))
            (eval (car X)) )
         (? (pair (eval (car X)))
            (let
               (Y @
                  R (save (cons (++ Y) Y))
                  Z R )
               (while (pair Y)
                  (setq Z (set 2 Z (cons (++ Y) Y))) )
               (while (pair (cdr (shift X)))
                  (save (setq Y (eval (car X)))
                     (while (pair Y)
                        (setq Z (set 2 Z (cons (++ Y) Y))) ) ) )
               (set 2 Z (eval (car X)))
               R ) ) ) ) )

map:

  • llvm~_Append (375 "src/subr.l" llvm pico)

  • llvm~openRdWrAppend (45 "src/lib.c" llvm pico)

  • llvm~openWrAppend (49 "src/lib.c" llvm pico)

  • pico~append (375 "src/subr.l" llvm pico)

В библиотеки “с”, конечно, уже нет смысла лезть и, скорее всего, на этом уровне исследования структуры и стоит остановиться. Пока не понятно с базовым уровнем, в принципе. С одной стороны, система - отличный прецедент для образования, а сдругой сам автор расчитывает на то, что уже надо знать тот же “с” с POSIX и даже Lisp.

С этой же проблемой я столкнулся при попытки акцентировать ключевые аспекты в рамках темы NUM. Но такое структурирование и есть уже, собственно, работа над мануалом и здесь на данный момент проссматриваются - Small Number, BigNum, Fix Pointer, math.l, big.l, FLG, NIL, CNT, FD, PID, TIM, DAT, Comparing, Arithmetics, Logic, POSIX, Native C Calls, LLVM. Может в этом же контексте надо рассмтривать и биты, байты, “блобы” … и просто весь спектор “классики“. В конце концов, есть такой принцип - выжимай все их системы-хоста! … пусть она или он выпоняют всю “рутину нижнего уровня“. То есть, не смотря на то что PicoLisp сам претендует на замещение нижнего уровня и даже есть попятки замутить на нем операционную систему, в мануале лучше “пойти на поводу” автора, отталкиваясь от некоторого стандарта и больше внимания уделяя, собственно “символьному моделированию“, “символьной обработке“.

P. S. В файле мануала не будет повторяться содержимое первого файла, а только ссылки на соответствующие его тиддлеры. Главное структура, которая, фактически, уже определена, за исключением таких деталей, который обнаружатся в процессе. И ещё тут же, пользуясь, случаем … разражают мануалы, начинающиеся с “привет, мир!“ или как сложить два числа! … там, же, собственно, и факториал! Считаю, что, в крайнем случае, надо начинать с инсталляции системы и описанием структуры папок и файлов … и, вообще, с работы с файлами, а не с фокусов с командной строкой, особенно, в современном мире, когда по факту, давно царит тотальный графический интерфейс и где “строка ввода” (а не терминал вывода!) просто частный случай в его составе и, наконец, концепция canvas тихо и незаметно завоевывет мир, усмехаясь над любыми попытками что-то новое сделать с десктопом (рабочим столом). И давно пора все интегрировать в браузере - операционную систему, базу данных, гипертекст, графический интерфейс и даже клиента с сервером. И это называть радикальным подходом к приложениям! Некая компилируемая среда как хост и метаинтерпретатор как ядро с другими интерпретаторами-плагинами.

0
Subscribe to my newsletter

Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sergey Shishkin
Sergey Shishkin

Всегда чему-то учусь!