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