Каждый язык программирования, который я когда-либо видел, был основан на Латинском алфавите, это не удивляет рассмотрение, что я живу в Канаде... Но это только действительно имеет смысл, что были бы языки программирования на основе других алфавитов, или иначе яркие программисты во всем мире должны будут изучить новый алфавит для продолжения в поле. Я знаю для того, что люди в странах во власти других алфавитов разрабатывают языки, базирующиеся от Латинского алфавита (например, Ruby из Японии), но насколько распространенный это, чтобы языки программирования базировались прочь других алфавитов как арабский язык, или кириллицы или даже систем письменности, которые не являются алфавитными, а скорее логографическими по своей природе, такие как японское Кандзи? Также какой-либо из этих языков в активном широком использовании, или они главным образом используются в качестве обучающих инструментов? Это - что-то, что прослушивало меня, так как я начал программировать, и я никогда не натыкался на кого-то, кто мог думать о реальном ответе.
Список есть в Википедии . Я не думаю, что какие-то из них действительно распространены. Многие программисты могут научиться писать программы с английскими ключевыми словами, даже если они не понимают язык. Ruby - хороший пример, вы по-прежнему будете видеть японские идентификаторы и комментарии в некотором коде Ruby.
APL, вероятно, наиболее широко известен. У него даже есть классная накладка на клавиатуру (или это была специальная клавиатура, которую нужно было покупать?):
В неалфавитной категории у нас также есть языки программирования, такие как LabVIEW, который в основном графический. (Вы можете помечать объекты, и вы можете манипулировать строками, так что есть некоторое текстовое содержание). LabVIEW уже много лет используется для сбора данных и автоматизации, но приобрел некоторую популярность, когда стал платформой по умолчанию для Lego Mindstorms.
Ну, Brainf * не использует латинские символы, прошу прощения за язык ... и каламбур.
Многие языки допускают идентификаторы Unicode. Это часть стандартной Java , и оба g ++ (хотя вы должны использовать экранирование \ uNNNN) и MSVC ++ разрешают их (см. Также этот вопрос ) А некоторые позволяют использовать #define
(или, может быть, лучше) для переименования управляющих структур.
Но на самом деле люди по большей части этого не делают. См. Предыдущие вопросы, такие как Язык имен переменных? , Должен ли весь код быть написан на английском языке? и т. Д.
В российской ERP-системе используется один язык, названный в честь компании, которая ее разработала 1C
. Но у его идентификаторов и операторов есть английские аналоги.
Кроме того, я знаю, что haskell
поддерживает идентификаторы Unicode, поэтому вы можете писать программы на любом алфавите. Но это бесполезно (мой родной язык - русский). Достаточно того, что программные сообщения и полезные комментарии нужно набирать родным алфавитом.
Ну, всегда есть APL. У него есть свои собственные символы UNICODE, и я считаю, что раньше он также требовал специальной клавиатуры.
Другие люди отвечают с языками, которые используют знаки препинания в дополнение к латинским буквам. Интересно, почему никто не упомянул также цифры от 0 до 9?
В некоторых языках и в некоторых реализациях некоторых языков программисты могут использовать широкий спектр символов в идентификаторах, например, арабские или китайские символы. Однако это не означает, что язык полагается на них.
В большинстве языков программисты могут использовать широкий спектр символов в строковых литералах (в кавычках) и в комментариях. Это опять же не означает, что язык полагается на них.
В каждом языке программирования, который я видел, язык действительно полагается на знаки препинания и цифры. Так что это ответ на ваш вопрос, но не так, как вы ожидаете.
Теперь давайте попробуем найти что-то значимое. Существует ли язык программирования, в котором ключевые слова выбираются не из латинского алфавита? Я думаю, что нет, за исключением, может быть, языков шуток. Какой смысл изобретать язык программирования, который делает невозможным для некоторых программистов даже ввести программу?
EDIT: Мое предположение неверно. Помимо использования в APL различных придуманных знаков препинания, он зависит от нескольких греческих ключевых слов, где каждое ключевое слово состоит из одной буквы, например, буквы rho.
Я только что нашел интересную вики для « эзотерических языков программирования ».
Агда .
Пример фрагмента:
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ω)