Правила языка: алфавит
Алфавит языка в своей первой версии включает в себя символы с кодами 9, 32 — 126,
буквы русского алфавита, символы псевдографики и символ «№».
Поскольку первая версия языка нужна для раскрутки компилятора на самом языке,
решено остановиться пока что на восьмибитной кодировке.
Предпочтение отдано кодировке cp866, поскольку в ней есть символы псевдографики.
В дальнейшем будет поддержка utf-8.
Пустой символ
= (utf-8: 16\9, cp866: 16\9, табуляция)
| (utf-8: 16\20, cp866: 16\20, пробел)
| ░ (utf-8: 16\2591, cp866: 16\b0)
| ▒ (utf-8: 16\2592, cp866: 16\b1)
| ▓ (utf-8: 16\2593, cp866: 16\b2)
| │ (utf-8: 16\2502, cp866: 16\b
| ┤ (utf-8: 16\2524, cp866: 16\b4)
| ╡ (utf-8: 16\2561, cp866: 16\b
| ╢ (utf-8: 16\2562, cp866: 16\b6)
| ╖ (utf-8: 16\2556, cp866: 16\b
| ╕ (utf-8: 16\2555, cp866: 16\b'>
| ╣ (utf-8: 16\2563, cp866: 16\b9)
| ║ (utf-8: 16\2551, cp866: 16\ba)
| ╗ (utf-8: 16\2557, cp866: 16\bb)
| ╝ (utf-8: 16\255D, cp866: 16\bc)
| ╜ (utf-8: 16\255C, cp866: 16\bd)
| ╛ (utf-8: 16\255B, cp866: 16\be)
| ┐ (utf-8: 16\2510, cp866: 16\bf)
| └ (utf-8: 16\2514, cp866: 16\c0)
| ┴ (utf-8: 16\2534, cp866: 16\c1)
| ┬ (utf-8: 16\252C, cp866: 16\c2)
| ├ (utf-8: 16\251C, cp866: 16\c
| ─ (utf-8: 16\2500, cp866: 16\c4)
| ┼ (utf-8: 16\253C, cp866: 16\c
| ╞ (utf-8: 16\255E, cp866: 16\c6)
| ╟ (utf-8: 16\255F, cp866: 16\c
| ╚ (utf-8: 16\255A, cp866: 16\c'>
| ╔ (utf-8: 16\2554, cp866: 16\c9)
| ╩ (utf-8: 16\2569, cp866: 16\ca)
| ╦ (utf-8: 16\2566, cp866: 16\cb)
| ╠ (utf-8: 16\2560, cp866: 16\cc)
| ═ (utf-8: 16\2550, cp866: 16\cd)
| ╬ (utf-8: 16\256C, cp866: 16\ce)
| ╧ (utf-8: 16\2567, cp866: 16\cf)
| ╨ (utf-8: 16\2568, cp866: 16\d0)
| ╤ (utf-8: 16\2564, cp866: 16\d1)
| ╥ (utf-8: 16\2565, cp866: 16\d2)
| ╙ (utf-8: 16\2559, cp866: 16\d
| ╘ (utf-8: 16\2558, cp866: 16\d4)
| ╒ (utf-8: 16\2552, cp866: 16\d
| ╓ (utf-8: 16\2553, cp866: 16\d6)
| ╫ (utf-8: 16\256B, cp866: 16\d
| ╪ (utf-8: 16\256A, cp866: 16\d'>
| ┘ (utf-8: 16\2518, cp866: 16\d9)
| ┌ (utf-8: 16\250C, cp866: 16\da)
| █ (utf-8: 16\2588, cp866: 16\db)
| ▄ (utf-8: 16\2584, cp866: 16\dc)
| ▌ (utf-8: 16\258C, cp866: 16\dd)
| ▐ (utf-8: 16\2590, cp866: 16\de)
| ▀ (utf-8: 16\2580, cp866: 16\df)
Пробелы в тексте программы, которые ни на что не влияют (пробелы имеют значение только в текстовых константах), могут быть
заменены на символы псевдографики, которые тоже ни на что не влияют. Например:
┌───────────────────────────────────────────────────────┐
│ (* Эта симпатичная рамка является графичесим изыском, │
│ но не оказывает никакого влияния, как и пробел. *) │
└───────────────────────────────────────────────────────┘
Двоичная цифра
= 0 | 1
Десятичная цифра
= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Шестнадцатиричная цифра
= 0 | 1 | 2 | 3 | 4
| 5 | 6 | 7 | 8 | 9
| A | a | B | b | C | c
| D | d | E | e | F | f
| А | а | Б | б | Ц | ц
| Д | д | Е | е | Ф | ф
Латинская буква
= A | a | B | b | C | c
| D | d | E | e | F | f
| G | g | H | h | I | i
| J | j | K | k | L | l
| M | m | N | n | O | o
| P | p | Q | q | R | r
| S | s | T | t | U | u
| V | v | W | w | X | x
| Y | y | Z | z
Русская буква
= А | а | Б | б | В | в
| Г | г | Д | д | Е | е
| Ё | ё | Ж | ж | З | з
| И | и | Й | й | К | к
| Л | л | М | м | Н | н
| О | о | П | п | Р | р
| С | с | Т | т | У | у
| Ф | ф | Х | х | Ц | ц
| Ч | ч | Ш | ш | Щ | щ
| Ъ | ъ | Ы | ы | Ь | ь
| Э | э | Ю | ю | Я | я
Опубликовано: 2023.05.02, последняя правка: 2024.02.23 21:21
Отзывы
✅ 2024/09/05 05:02, Вежливый Лис #0
Смотрю я на Unicode, и он вызывает у меня возмущение. В нём есть кодепоинты для символов, являющихся нижними индексами. Подраздел «Подстрочные символы» раздела «Надстрочные и подстрочные знаки» был утвержден как часть Юникода версии 4.1 в 2005 г. Но это только для английского алфавита работает.Xₐ, Xᵦ, Xₑ, Xₕ, Xᵢ, Xⱼ, Xₖ, Xₗ, Xₘ, Xₙ, Xₒ, Xₚ, Xₛ, Xₜ, Xᵤ, Xᵥ, Xₓ, Xᵧ Индексы C, D, F, G, Q, R, W, Z не нашел Как будто у других языков нет прав на математику. Только предлагаемый Лисом стандарт кодирования УТКА сможет решить проблему нехватки символов в Unicode. Ну и кодировка КРЯ-8.✅ 2024/09/05 14:43, Gudleifr #1
Нельзя путать набор символов языка программирования и кодировку входных/выходных текстов. Тем более, прописывать второе в стандарте языка.
Кодировка языка программирования — это тупо кодировка текстового редактора в котором вы собираетесь писать программы. А если не только вы, то нужно выбрать максимальное множество символов, одинаково (или без проблем) кодируемых всеми редакторами сообщества.
Кодировка входных/выходных текстов — чисто внешний параметр текущий задачи. Все эти кодировки, шрифты, пиктограммы, фонемы — суть языки интерфейсов, не имеющие с языком программирования ничего общего. Если об этом забыть и понадеяться, что по умолчанию прокатит, то всё рухнет при малейших проблемах локализации.✅ 2024/09/05 17:44, Автор сайта #2
Вежливый Лиспредлагаемый стандарт кодирования УТКА сможет решить проблему Не находите ли Вы, что тут был бы уместен мем «Поздравляю! Теперь у нас 15 стандартов!»? Юникод и в самом деле не идеален. Мне он не нравится тем, что алфавиты, для которых 8-битной кодировки достаточно, кодируются 16 битами. И русский алфавит в том числе.
Если б я был каким-то международным комитетом, то предложил бы такие правила кодирования.- Существует зарезервированный код, переключающий алфавиты. Допустим, это шестнадцатеричное «FF».
- У каждого алфавита есть свой индивидуальный код.
- Символы алфавита кодируются с 0 в порядке возрастания. Например: А, а, Б, б, . . . Я я.
- Переключения с одного алфавита на другой делается последовательностью байтов <зарезервированный для переключения алфавитов код> <индивидуальный код алфавита>.
Но внедрить такое нереально, поэтому не хочу выслушивать поздравления с изобретением очередного стандарта.
GudleifrНельзя путать набор символов языка программирования и кодировку текстов. Так и есть. Завязывать язык программирования на определённую кодировку неправильно. Хотя при реализации компилятора выбор кодировками делать придётся. Добавить свой отзыв
Написать автору можно на электронную почту mail(аt)compiler.su
|