Существуют ли языки программирования, в которых используются нелатинские алфавиты? - PullRequest
26 голосов
/ 20 мая 2010

Каждый язык программирования, который я когда-либо видел, основан на латинском алфавите, это не удивительно, учитывая, что я живу в Канаде ... Но в действительности имеет смысл только то, что будут языки программирования, основанные на других алфавитах, иначе ярким ученым-программистам во всем мире придется выучить новый алфавит, чтобы продолжить работу в этой области. Я точно знаю, что люди в странах, где доминируют другие алфавиты, развивают языки, основанные на латинском алфавите (например, Ruby из Японии), но насколько распространены языки программирования на основе других алфавитов, таких как арабский или кириллица или даже системы письма, которые не являются буквенными, а скорее логографическими по своей природе, такие как японское кандзи? Кроме того, активно ли широко используются эти языки или они в основном используются в качестве учебного пособия? Это то, что меня беспокоило с тех пор, как я начал программировать, и я никогда не сталкивался с кем-то, кто мог бы придумать настоящий ответ.

Ответы [ 10 ]

36 голосов
/ 20 мая 2010

Вы видели Perl?

22 голосов
/ 20 мая 2010

APL , вероятно, наиболее широко известен. У него даже есть классная клавиатура (или это была специальная клавиатура, которую вам пришлось купить?):

image courtesy of Wikipedia

В неалфавитной категории у нас также есть языки программирования, такие как LabVIEW , которые в основном графические. (Вы можете пометить объекты, и вы все еще можете манипулировать строками, так что есть некоторый текстовый контент.) LabVIEW использовался в сборе данных и автоматизации в течение многих лет, но приобрел некоторую популярность, когда стал стандартным платформа для Lego Mindstorms .

9 голосов
/ 20 мая 2010

Есть список в Википедии . Я не думаю, что какой-либо из них действительно распространен, хотя. Многие программисты могут научиться писать программы с английскими ключевыми словами, даже если они не понимают язык. Ruby - хороший пример, вы все равно увидите японские идентификаторы и комментарии в некотором коде Ruby.

5 голосов
/ 20 мая 2010

Ну, Brainf * не использует латинские символы, если вы простите язык ... и каламбур.

3 голосов
/ 20 мая 2010

Многие языки допускают идентификаторы Unicode. Он является частью стандартной Java , и оба g ++ (хотя вы должны использовать \ uNNNN escape) и MSVC ++ позволяют им (см. Также этот вопрос ) А некоторые позволяют использовать #define (или, может быть, лучше) для переименования управляющих структур.

Но на самом деле люди не делают этого по большей части. Смотрите предыдущие вопросы, такие как Язык имен переменных? , Должен ли весь код быть написан на английском языке? и т. Д.

2 голосов
/ 22 мая 2010

Agda .

Пример фрагмента:

mutual
   data ωChain : Set where
     _∷_,_ : ∀ (x : carrier) (xω : ∞ ωChain) (p : x ≼ xω) → ωChain

   head : ωChain → carrier
   head (x ∷ _ , _) = x

   _≼_ : carrier → ∞ ωChain → Set
   x ≼ xω = x ≤ head (♭ xω)
2 голосов
/ 20 мая 2010

Существует один язык, используемый в российской ERP-системе, названной в честь компании, которая ее разработала 1C. Но это идентификаторы и операторы имеют английские аналоги.

Также я знаю, что haskell имеет поддержку идентификаторов юникода, поэтому вы можете писать программы на любом алфавите. Но это бесполезно (мой родной язык русский). Достаточно набрать программные сообщения и полезные комментарии на родном алфавите.

2 голосов
/ 20 мая 2010

Ну, всегда есть APL . У него есть свои символы UNICODE, и я считаю, что раньше требовалась и специальная клавиатура.

1 голос
/ 20 мая 2010

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

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

В большинстве языков программисты могут использовать широкий диапазон символов в строковых литералах (в кавычках) и в комментариях. Опять же, это не означает, что язык опирается на них.

На каждом языке программирования, который я видел, язык использует знаки препинания и цифры. Так что это отвечает на ваш вопрос, но не так, как вы ожидаете.

Теперь давайте попробуем найти что-то значимое. Есть ли язык программирования, где ключевые слова выбираются из нелатинских алфавитов? Я бы не догадался, разве что для языков шутки. Какой смысл изобретать язык программирования, который делает невозможным для некоторых программистов даже ввод программы?

РЕДАКТИРОВАТЬ: мое предположение неверно. Помимо использования APL различных изобретенных знаков препинания, оно зависит от нескольких греческих ключевых слов, где каждое ключевое слово имеет длину одной буквы, например, буква rho.

0 голосов
/ 20 мая 2010

Я только что нашел интересную вики для " эзотерических языков программирования ".

...