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


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

Многие языки программирования добавили поддержку Unicode в качестве запоздалой мысли в более поздних версиях, но какие широко используемые языки были выпущены с поддержкой Unicode с первого дня?

12 16

12 ответов:

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

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

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

Так что Python был разработан не для Unicode, а для Python 3 был.

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

using משליט = System.Object;
using תוצאה = System.Int32;
public class שלום : משליט  {
    public תוצאה בית() {
        int אלף = 0;
        for (int λ = 0; λ < 20; λ++) אלף+=λ;
        return אלף;
    }
}

Язык программирования GoogleGo поддерживает Unicode и работает с UTF-8.

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

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

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

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

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

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, было символом идентификатора. См.их статью [5] за 1993 год по этому вопросу. (это проект, в котором был изобретен UTF-8, что означало, что они могли сделать это довольно совместимым способом, в частности, без использования двоичного текста в своих программах.)

Другие языки, которые поддерживают идентификаторы, отличные от ASCII, включают текущий PHP.

Perl 6 имеет полную поддержку unicode с нуля.
(С компилятором Rakudo Perl 6 , являющимся первой реализацией)

Общий обзор

Операторы Unicode

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

A существует специальное кодирование для обработки данных неизвестной кодировки "utf8-c8": это предполагает utf-8, когда это возможно, но создает искусственные кодовые точки для не поддающихся кодированию последовательностей, позволяя им при необходимости перемещаться туда и обратно.

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

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

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

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

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

Языки Java и .net