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

10 ответов

Java, вероятно, был первым популярным языком, в котором впервые была реализована поддержка Unicode.

32
ответ дан 30 November 2019 в 05:37
поделиться

Java использует символы из набора символов Unicode.

-1
ответ дан 30 November 2019 в 05:37
поделиться
2
ответ дан 30 November 2019 в 05:37
поделиться

В Python 3 было много критических изменений, в том числе переход на Unicode для всего текста .

Итак, Python не был разработан основа для Unicode, но Python 3 был.

19
ответ дан 30 November 2019 в 05:37
поделиться

В основном все языки .NET являются языками Unicode, например C # и VB.NET .

31
ответ дан 30 November 2019 в 05:37
поделиться

Действительно сложно разработать поддержку Unicode в будущем в язык программирования с самого начала.

Java - один из языков, для которых это предусмотрено в спецификации языка. Однако поддержка Unicode в Java v1.0 отличается от v5 и v6 Java SDK. Это в первую очередь связано с версией Unicode, которой учитывалась спецификация языка, когда язык был первоначально разработан. Java пытается отслеживать изменения в стандарте Unicode с каждым основным выпуском.

Ранние реализации JLS могли требовать поддержки Unicode, прежде всего потому, что сам Unicode поддерживал 65536 символов (версия 1.0 для Java поддерживала Unicode 1.1, а Java v1.4 поддерживала Unicode 3.0), который был совместим с 16-битным пространством хранения, занимаемым символами. Это изменилось с появлением Unicode 3.1 - это развивающийся стандарт, обычно с добавлением большего количества символов в каждой версии. Персонажи, добавленные позже в 3. 1 были названы дополнительными символами . Поддержка дополнительных символов была добавлена ​​в Java 5 через JSR-204 ; Java 5 и 6 поддерживают Unicode 4.0.

Поэтому не удивляйтесь, если разные языки программирования по-разному реализуют поддержку Unicode.

С другой стороны, PHP (!!) и Ruby не имеют встроенной поддержки Unicode. во время создания.

PS: Поддержка Unicode v5.1 должна быть сделана в Java 7 .

6
ответ дан 30 November 2019 в 05:37
поделиться

языки java и .net

-1
ответ дан 30 November 2019 в 05:37
поделиться

Иногда функция, которая была включена в язык при его первоначальной разработке, не всегда лучшая.

Языки со временем изменились, и многие из них стали раздуваться дополнительными функциями, при этом не обязательно поддерживать в актуальном состоянии те функции, которые он изначально включал.

Поэтому я просто отбрасываю идею, что вам не обязательно сбрасывать со счетов языки, которые недавно добавили Unicode. У них будет то преимущество, что они добавят Unicode в уже готовый инструмент разработки и получат возможность сделать это правильно с первого раза.

Имея это в виду, я хочу убедиться, что Delphi включен сюда в качестве одного из ваших ответов. Embarcadero добавил Unicode в свою версию Delphi 2009 и отлично поработал над этим. Этого было достаточно, чтобы наконец предложить мне перейти на Delphi 4, который я использовал 10 лет.

1
ответ дан 30 November 2019 в 05:37
поделиться

Языки Java и .NET, как указывали другие комментаторы, хотя строки Java - это UTF-16, а не UCS или UTF-8. (В то время это казалось разумной идеей! Теперь ясно, что лучше использовать UTF-8 или UCS.) И Python 3 действительно является другим, несовместимым языком с Python 1.x и 2.x, поэтому он тоже подходит.

Языки Plan9 примерно в 1992 году были, вероятно, первыми, кто сделал это: их диалект C, rc , Alef, mk , ACID и т. Д., Все были с поддержкой Unicode. . Они использовали очень простой подход: все, что не было ASCII, было символом идентификатора. См. Их статью от 1993 г. по этому поводу.

5
ответ дан 30 November 2019 в 05:37
поделиться

Я не знаю, насколько далеко это зашло в других языках, но забавная вещь в C # заключается в том, что это не только среда выполнения ( строка класс и т. д.) поддерживает unicode - но unicode полностью поддерживается в исходном коде:

using משליט = System.Object;
using תוצאה = System.Int32;
public class שלום : משליט  {
    public תוצאה בית() {
        int אלף = 0;
        for (int λ = 0; λ < 20; λ++) אלף+=λ;
        return אלף;
    }
}
12
ответ дан 30 November 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: