bmstu-iu9 / bmstu-iu9/refal-5-lambda

Поддержка Юникода в Рефале-5λ

Open
#27 13 comments 0 reactions 0 assignees View on GitHub
study
Dominant language
C++
Stars
97
Forks
40
PR merge metrics
No merged PRs in 30d

Description

Текущая реализация Рефала-5λ не поддерживает Юникод, интерпретирует текст как последовательность байт. Поэтому с текстами в кодировке UTF-8 он частично совместим, ровно на столько, на сколько UTF 8 может заменить однобайтную кодировку.

Требуется реализовать поддержку Юникода и кодировок символов на уровне лексики (в частности, национальные символы в идентификаторах), библиотеки времени выполнения и библиотеки стандартных функций.

Библиотеку для Юникода можно реализовывать тремя путями:
1. по принципу чучхэ¹ — самим реализовать всё на C++,
2. используя API операционной системы, при этом должны поддерживаться как минимум три ОС: Windows, Linux и OS X (есть подозрение, что у Linux и OS X API будет разным);
3. используя библиотеками `` и ``, но насколько точно и переносимо они поддерживают Юникод в разных версиях компиляторов — точно не знаю.

У каждого варианта свои достоинства и недостатки, нужно будет выбрать какой-то один и его реализовать.

---

¹ Чучхэ (кор.) — идеология опоры на собственные силы

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no files or tests. Start by locating the lexer, runtime library, and standard-function library, then evaluate the proposed Unicode approaches; done means Unicode and character encodings work in identifiers and these three areas across Windows, Linux, and OS X.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, internationalization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.