Skip to content

Instantly share code, notes, and snippets.

Title

**Hello**,

world.

@reznikmm
reznikmm / steelman.md
Created March 12, 2023 16:44
Перевод "STEELMAN"

Требования для компьютерных языков программирования высокого уровня "Steelman".

Предисловие

Программа "Общий высокоуровневый язык" была создана Министерством обороны США в 1975 году. Ее целью было создание единого высокоуровневого языка программирования, который можно было бы использовать для встраиваемых

Introduction to VSS library

The VSS library is designed to provide advanced string and text processing capabilities. The concept behind the new string library is to offer a convenient and robust API that allows developers to work with Unicode text, regardless of its internal representation. In this article, we will introduce you to the library and explain its purpose, highlighting its usefulness for developers working in this area.

Name Resolution

Разрешение неоднозначностей выполняется в два прохода:

  • Первый (от листьев к корню) собирает возможные интерпретации и поднимается к конструкции названной в ARM complete context (См [http://www.ada-auth.org/standards/12aarm/html/AA-8-6.html ARM 8.6 (4)]). Там выбирается одна из возможных интерпретаций всего поддерева.
  • Второй проход (в обратном направлении от complete context к листьям) распространяет информацию о выбранной интерпретации

Соответственно нужны следующие абстракции:

  • Interpretation (Meaning?) - возможная интерпретация
  • Interpretation_Set - множество возможных интерпретаций
  • Interpretation_Set_Tuple - вектор/кортеж из Interpretation_Set собирает в единое целое несколько независимых множеств интерпретаций, например ассоциация в агрегате A | B => C нужно собрать три множества интерпретаций, которые будут трактоваться в зависимости от контекста.

Таблица имен

Если отказаться от атрибутов, персистов и функциональщины, то можно иметь "актуальную" в данный момент таблицу имен. Например, в начала приватной части пакета запоминать содержимое "верхнего" декларативного региона в снимок, а перед выходом из пакета пакета - восстанавливать содержимое из снимка. Если, при этом, использовать для ссылок относительную индексацию (регион, индекс в регионе), то ссылки не будут меняться.

При такой реализации дольше не нужен стек, ведь можно просто сместиться к родительскому региону, содержимое которого будет восстановлено.

@reznikmm
reznikmm / indent.md
Created November 14, 2022 14:46
Indent

Автоматические отступы

Не могу сообразить с какой стороны подойти к автоматизации отступов в редакторе.

Emacs

http://cc-mode.sourceforge.net/html-manual/Indentation-Engine-Basics.html

  • Определить синтаксическую конструкцию, первую на строке, на которой мы находимся, и найти ее "опорную точку" (anchor position). Например, открывающуюся скобку на предыдущей строке.
  • Найти в настройках смещение(-ия) отступа для этой синтаксической конструкции и применить его.
@reznikmm
reznikmm / stm32f410.patch
Created April 5, 2021 14:14
A patch for setup_pll.adb/
diff --git a/arm/stm32/setup_pll.adb b/arm/stm32/setup_pll.adb
index e6b1dcc..29124f5 100644
--- a/arm/stm32/setup_pll.adb
+++ b/arm/stm32/setup_pll.adb
@@ -102,7 +102,7 @@ procedure Setup_Pll is
else (if HSE_Enabled then SYSCLK_SRC_HSE
else SYSCLK_SRC_HSI));
SW_Value : constant CFGR_SW_Field :=
- SYSCLK_Source'Enum_Rep (SW);
+ (As_Array => False, Val => SYSCLK_Source'Enum_Rep (SW));