Browse Source

SVI Исправления, добавления

SVI 7 months ago
parent
commit
c84d7a207c
3 changed files with 279 additions and 3 deletions
  1. 1 0
      README.md
  2. 277 0
      docs/prolet-lisp-up.md
  3. 1 3
      docs/prolet-notation-style.md

+ 1 - 0
README.md

@@ -10,6 +10,7 @@
 - [Разрешение диалектических противоречий на новом уровне](./docs/prolet-sintez.md)
 - [Многоэтажность языка](./docs/prolet-levels.md)
 - [Диалектика стиля нотации](./docs/prolet-notation-style.md)
+- [Диалектическое развитие S-выражений](./docs/prolet-lisp-up.md)
 - Атомы языка
 - ВМ
 - Система типов

+ 277 - 0
docs/prolet-lisp-up.md

@@ -0,0 +1,277 @@
+# Диалектическое развитие S-выражений
+
+Как было отмечено ранее, синтаксис предлагаемый с опорой на `Си` / `Rust` не поддерживает (сопротивляется) развитию семантических форм языка. Слишком много форм представления алгоритмов и структур.
+
+Более узкие семантические формы в духе S-выражений (ближе по сути к Лисп), позволяют создавать на единой базе S-выражений предсказуемые по форме выражения, но c широкой по содержанию семантикой.
+
+## Как совместить гибкость и простоту Лиспа с материалистической строгостью и безопасностью, не падая в хаос идеализма?
+
+`Rust` , как мы уже отметили, — это победа формы над мыслью в угоду безопасности.
+
+`Lisp` — победа мысли над формой, но в ущерб практике  и педагогике.
+
+`Pascal` -- при хороших педагогических свойствах не обеспечивает требование развития языка.
+
+Нам же нужен синтез:
+
+-- Минимализм `Lisp` в синтаксисе,
+-- Материализм диалектики в семантике,
+-- Педагогика в структуре,
+-- Развитие — в самом языке.
+
+### Новый путь: `prolet` как диалектический минимализм
+
+Основной принцип:
+
+* Один синтаксис — множество смыслов.
+* Форма — минимальна,
+* Семантика — управляема контекстом,
+* Развитие — через метаязык.
+
+Это — не возврат к `Lisp` , а его диалектическое преодоление:
+
+* мы берём гомоиконичность (взаимность представления кода и данных)
+* макросы,
+
+но встраиваем их в рамки объективной реальности — памяти, времени, безопасности, готовности программиста.
+
+## Единая синтаксическая форма: S-выражения с семантической дисциплиной
+
+Вместо множества форм ( `struct` , `enum` , `fn` , `unsafe` , `impl` , `where` и т.д.) — одна базовая конструкция:
+
+```lisp
+(операция аргументы*)
+```
+
+**Но!** Семантика определяется _не формой_, а _контекстом_ и _метаинформацией_.
+
+Примеры:
+Функция (высокий уровень)
+
+```list
+(фн обработать (данные)
+    (фильтр данные (> 10) (* 2))
+)
+```
+
+Низкоуровневая операция
+
+```lisp
+(фн @система копировать (ист: сис.Адрес, цель: сис.Адрес, размер: Целое)
+  (асм "rep movsb"))
+```
+
+### Структура данных
+
+```lisp
+(структ Пользователь
+    имя: Строка,
+    возраст: Целое,
+    роль: Выбор (Админ, Пользователь, Гость)
+)
+```
+
+Интерфейсный тип
+
+```lisp
+(тип ИФайл
+    (Читать (имя:Строка)(Рез.Байты)               @док "Читает файл с указанным именем")
+    (Писать (имя: Строка, права:ос.Права)(Опт.Ош) @док "Записывает файл с указанным именем и правами")
+)
+```
+
+Все конструкции — одного синтаксического вида, но семантика управляется _тегом в начале_:
+
+* `фн` (функция),
+* `структ` (структура),
+* `система` (низкоуровневый),
+* `тип`.
+
+## Узкие семантические формы: от простого к сложному
+
+ `Мы не устраняем сложность, но последовательно её раскрываем.`
+
+### Уровень 1: Новичок
+
+Доступны только:
+
+* (фн ...)
+* (спис ...),
+* (словарь ...),
+* (если ...),
+* (для ...)
+
+Нет доступа к:
+
+* (@система),
+* (асм),
+* (макро).
+
+```lisp
+(фн привет (имя)
+  (печать "Привет, " имя "!"))
+```
+
+Простота Лиспа, но в безопасной оболочке диалектического языка.
+
+### Уровень 2: Стажёр
+
+Открываются:
+
+* (структ ...)
+* (тип ...)
+* (макрос ...)
+
+```lisp
+(структ Точка (
+    x: Целое,
+    y: Целое, ))
+
+(макрос когда (условие тело)
+  (выраж если условие (выполнить тело))
+)
+```
+
+Язык начинает развиваться, но в рамках контролируемой системы.
+
+## Уровень 3: Мастер
+
+Разрешён:
+
+* (@система ...)
+* (асм ...)
+* (система-вызов ...)
+* (указ ...)
+
+```lisp
+(фн @система копировать-память (цель источник длина)
+    (асм
+      "mov rcx, {длина}"
+      "rep movsb"))
+```
+
+**Но!** Такой код не компилируется без:
+
+* одобрения ревью,
+* ссылки на стандарт (например, "интерфейс драйвера PCI"),
+* пометки обоснования @причина "взаимодействие с железом".
+
+## Семантическая экономия: один синтаксис — разный смысл по контексту
+
+```lisp
+(спис 1 2 3)
+(структ Пользователь)
+(выраж ...)
+(тип Проверятор)
+(Список Цел 1 2 3)
+(перем посетитель (= Пользователь @имя: "Анна",
+                                  @возраст: 28,
+                                  @роль: Админ))
+(знач ...) или (= ...)
+(<имя_функции>)
+(тип_провер посетитель как ИФайл)
+```
+
+Это — диалектическая гибкость: форма одна, но смысл возникает в практике применения, а не в синтаксической избыточности.
+
+## Макросы как средство развития языка (по образцу Лиспа, но с контролем)
+
+Макросы — не анархия, а организованное развитие.
+
+```lisp
+(макрос конкур (тело...)
+  (поток (тело))
+  @док "Запускает конкурентно тело выражения")
+
+(конкур
+  (загрузить-данные)
+  (обновить-интерфейс))
+```
+
+Но:
+
+* Макросы только в модулях уровня 2+,
+* Должны быть задокументированы,
+* Не могут переопределять базовые формы (`если`,  `функция` и т.п.).
+
+Это — революционное преобразование старой формы со свободным содержанием, в новую форму с дисциплиной смысла.
+
+## Сужение контекста перехода: как программист "спускается"
+
+Переход на низкий уровень — не синтаксическое волшебство, а сознательный акт:
+
+prolet
+
+```lisp
+(фн @система сложить-указатели (a:сис.Указ, b:сис.Указ)
+  @обоснование: "оптимизация критического участка"
+  @требует-ревью
+  @уровень-доступа: 3
+    (сложить (сис.Извлечь a) (сис.Извлечь b))
+)
+```
+
+Что даёт такая форма:
+
+* Семантически сужает контекст: только указатели, только арифметика.
+* Фиксирует ответственность: обоснование, ревью, уровень.
+* Экономит мыслетопливо: нет лишних слов, только суть.
+* Педагогически настраивает: программист осознаёт, что делает.
+
+## Сравнение подходов: почему это диалектичнее
+
+### Синтаксическая сложность
+
+* `Lisp` Очень низкая
+* `Rust` Высокая
+* `prolet` Очень низкая
+
+### Семантическая ясность
+
+* `Lisp` Низкая (всё — список)
+* `Rust` Высокая (много форм)
+* `prolet` Высокая (контекст + тег)
+
+### Гибкость
+
+* `Lisp` Деструктивно высокая
+* `Rust` Ограниченная
+* `prolet` Высокая (макросы + уровни)
+
+### Безопасность
+
+* `Lisp` Нет
+* `Rust` Высокая
+* `prolet` (по уровням, от минимальной до высокой)
+
+### Развитие языка
+
+* `Lisp`  доступно индивидуально
+* `Rust` Через RFC
+* `prolet` Через макросы + одобрение сверху
+
+### Экономия мыслетоплива
+
+* `Lisp` Высокая для экспертов, низкая для новичков
+* `Rust` Низкая (много правил)
+* `prolet` Высокая (одна форма; много фиксированных смыслов в конкретном контексте)
+
+### Педагогичность
+
+* `Lisp` Низкая
+* `Rust` Недостаточная
+* `prolet` Высокая (постепенное раскрытие)
+
+## Заключение: язык как диалектический инструмент
+
+Приведённый синтез формы из трёх языков, соответствует духу диалектического материализма:
+
+* Форма — лисп-подобная: одна, чистая, минимальная.
+* Семантика — материалистическая: определяется практикой, контекстом, уровнем развития.
+* Переход между уровнями — не скачок, а педагогически организованный процесс.
+* Язык — не замороженный объект, а развивающийся организм.
+
+Это — не упрощение, а углубление диалектики:
+
+* мы не множим формы,
+* мы углубляем понимание единства и борьбы противоположностей в самом акте программирования.

+ 1 - 3
docs/prolet-notation-style.md

@@ -23,8 +23,6 @@
 
 И сравним их не по синтаксису, а по философскому содержанию, психологической нагрузке и диалектической зрелости.
 
-
-
 ### Метафизический идеализм
 
 Философия: `порядок ради порядка`
@@ -88,7 +86,7 @@
 - отрицает движение,
 - подавляет противоречие, делает вид, что его нет.
 
-Это как попытаться указом правительства приказать гражданам быть счастливыми в условиях массового нищеского существования.
+Это как попытаться указом правительства приказать гражданам быть счастливыми в условиях массового нищенского существования.
 
 Противоречие не исчезает — оно вытесняется и возвращается с удвоенной силой.