Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Правила языка: алфавит

Алфавит языка в своей первой версии включает в себя символы с кодами 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

ОценитеОценки посетителей
   ██████████████ 3 (33.3%)
   █████ 1 (11.1%)
   █████ 1 (11.1%)
   ███████████████████ 4 (44.4%)

Отзывы

✅  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

Авторизация

Регистрация

Выслать пароль

Карта сайта


Содержание

Каким должен быть язык программирования?

Анализ и критика

Описание языка

●  Философия языка

●  Правила языка: алфавит

●  Правила языка: строки, комментарии

●  Правила языка: скобки и их согласование

●  Правила языка: идентификаторы

●●  Правила языка: встроенные типы

●  Правила языка: числовые типы и числовые константы

●  Правила языка: строковые литералы

Компилятор

Отечественные разработки

Cтатьи на компьютерные темы

Компьютерный юмор

Новости и прочее




Последние отзывы

2024/11/21 11:02 ••• Автор сайта
Продолжение цикла и выход из него

2024/11/12 20:24 ••• Вежливый Лис
Правила языка: строки, комментарии

2024/11/12 13:10 ••• Вежливый Лис
Новости и прочее

2024/11/12 00:32 ••• Автор сайта
Оценка надёжности функции с несколькими реализациями

2024/11/06 02:50 ••• Иван
Энтузиасты-разработчики компиляторов и их проекты

2024/11/05 23:51 ••• Борис К.
Изменение приоритетов операций

2024/11/05 23:38 ••• Борис К.
Шестнадцатиричные и двоичные константы

2024/11/04 12:50 ••• Неслучайный читатель
Русский язык и программирование

2024/11/01 12:11 ••• ИванАс
Русской операционной системой должна стать ReactOS

2024/10/27 14:01 ••• Автор сайта
О русском ассемблере

2024/09/29 23:40 ••• Автор сайта
Десятка худших фич C#

2024/09/29 13:10 ••• Автор сайта
ЕС ЭВМ — это измена, трусость и обман?

2024/09/22 21:08 ••• Вежливый Лис
Бесплатный софт в мышеловке