Какие языки программирования изначально разрабатывались с поддержкой Unicode?
Какие широко используемые языки программирования были разработаны с нуля с поддержкой Unicode?
Многие языки программирования добавили поддержку Unicode в качестве запоздалой мысли в более поздних версиях, но какие широко используемые языки были выпущены с поддержкой Unicode с первого дня?
12 ответов:
В 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, когда это возможно, но создает искусственные кодовые точки для не поддающихся кодированию последовательностей, позволяя им при необходимости перемещаться туда и обратно.
Python 3.x: http://docs.python.org/dev/3.0/whatsnew/3.0.html
Иногда функция, которая была включена в язык, когда он был впервые разработан, не всегда является лучшей.
Языки менялись с течением времени, и многие из них раздулись с дополнительными функциями, не обязательно сохраняя актуальность с функциями, которые он включил в первую очередь.
Поэтому я просто отбрасываю идею, что вы не должны обязательно сбрасывать со счетов языки, которые недавно добавили Unicode. Они будут иметь преимущество добавления Unicode к уже зрелому инструменту разработки, и получить шанс сделать все правильно с первого раза.
Имея это в виду, я хочу убедиться, что Delphi включен здесь, как один из ваших ответов. Embarcadero добавила Unicode в свою версию Delphi 2009 и проделала огромную работу. Этого было достаточно, чтобы, наконец, предложить мне обновить Delphi 4, который я использовал в течение 10 лет.