4

Я не могу понять, кто примет такое решение, но есть ли такой язык?Существует ли язык программирования, который использует символы, отличные от символов в таблице (не расширенной) ascii?

Причина, по которой я прошу об этом (или некоторые мелочи, если хотите), заключается в том, что я только что закончил делать восьмую итерацию моей «разработчика» версии dvorak (большой упор на специальные символы). И четыре клавиши в настоящее время не используются!

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


Если не потребность в каких-либо других символов, кроме базовых, то, что было бы лучше всего использовать (для программиста, конечно, это так) неиспользуемых ключей? Что-то от extended ascii table? Или целенаправленно оставить их неиспользованными и сделать что-нибудь классное с помощью AutoHotKey?

+0

У вас есть ссылка на этот разработчик dvorak layout? Звучит интересно. – RJFalconer

+0

Пока нет, хотя, если есть интерес, я не вижу причин не сообщать об этом в своем блоге. Но макет на самом деле является модифицированной версией svorak (шведский дворак) с Im из Швеции, мне как-то нужны мои åäö's. ;) – Mizipzor

ответ

13

Да, есть (по крайней мере один): APL

Вот игры Конвея жизни написано в APL:

Он использует это отображение клавиатуры:

+0

Прекрасный ответ! :) Хотя, я надеялся на несколько глупых идей, прежде чем что-то подобное появилось. – Mizipzor

+6

Я нахожу APL достаточно глупым для любых целей :) –

2

Язык сценариев для старинного мастер-программиста Macintosh (MPW) использовал много n-ASCII, чтобы реализовать то, что было в основном версией оболочки Unix. Фактически, некоторые из documentation все еще доступны. Например, он использовал Σ для перенаправления.

+0

Мне понравилось использование символов MPW для перенаправления; он имел отдельные символы для перенаправления stdout, stderr или обоих. Я не уверен, каким образом, если таковые имеются, можно было бы сделать то же самое в Unix. – supercat

1

Perl 6 имеет необязательный Unicode operators, а также возможность добавлять пользовательские операторы.

Возможно, вы не должны дождаться его, прежде чем переназначить свои ключи. Я не знаю, может ли Rakudo работать с операторами Unicode.

1

C# позволяет переменным содержать символы Unicode. Например, символ ɢ (Latin Small Capital G, U + 0262) является вполне допустимым символом в переменной C#.

+0

Также Java, Python, Haskell и т. Д. И большинство других современных языков программирования. Языки Lisp-семейства, Haskell и Scala, в частности, позволяют вам определять пользовательские Unicode-операторы. –

1

PL/I использует символ перевернутого-L для оператора «не»; VM360, который я использовал однажды, использовал «^» как эквивалент ASCII (я не думаю, что EBCDIC имел «^»).

2

Fortress, математический/научный язык программирования, разработанный (среди прочих) в Java Guy L Steele, когда он был еще на Солнце, широко использует Unicode математических оператор и т.д.

Не только есть определенное представление ASCII из языка, существует также определенный способ преобразования ASCII в «визуализированную» версию с использованием TeX. Вы также можете (как я понимаю, я) использовать операторы Unicode прямо в вашем источнике - есть только ASCII-ярлык для вещей, которые трудно напечатать (как я понимаю), я признаю, что я не уверен в этом вопросе).

На сайте an example of the source and how it's rendered.

3

Де-факто реализация Haskell, GHC, supports Unicode syntax если

{-# LANGUAGE UnicodeSyntax #-} 

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

Более точно, поддерживаются синтаксис:

ASCII Unicode alternative 
::  ∷ U+2237 PROPORTION 
=>  ⇒ U+21D2 RIGHTWARDS DOUBLE ARROW 
forall ∀ U+2200 FOR ALL 
->  → U+2192 RIGHTWARDS ARROW 
<-  ← U+2190 LEFTWARDS ARROW 
-<  ↢ U+2919 LEFTWARDS ARROW-TAIL 
>-  ↣ U+291A RIGHTWARDS ARROW-TAIL 
-<<  U+291B LEFTWARDS DOUBLE ARROW-TAIL 
>>-  U+291C RIGHTWARDS DOUBLE ARROW-TAIL 
*  ★ U+2605 BLACK STAR 

Кроме того, различные библиотеки обеспечивают Unicode операторов (с использованием поддержки Haskell для символов Unicode в именах операторов): http://www.haskell.org/haskellwiki/Unicode-symbols

0

Будет ли это считаться?

китайская версия Python
http://www.chinesepython.org/doc/tut/tut/node3.html

китайский:

>>> 甲 = 12 
>>> 乙 = 3 
>>> 甲 + 乙 
15 
>>> 甲 + 乙**乙 
39 
>>> 甲 = 0 #(可以重新指定值) 
>>> 乙 = 甲 + 1 
>>> 寫 乙 
1 

Английский:

>>> j = 12 
>>> y = 3 
>>> j + y 
15 
>>> j + y**y 
39 
>>> j = 0 
>>> y = j + 1 
>>> print y 
1 
+0

Да, но использует ли синтаксис китайский язык? Я не могу сказать. – CommaToast

+0

Да, 'if' отображает' '' и т. Д. Http://www.chinesepython.org/doc/tut/tut/node4.html – ains

2

Моя вилка F #: https://github.com/Heather/fsharp

let ° msg = System.Console.WriteLine(msg.ToString()) 

let ◄ = 5 
let ★ x = x + ◄ 
let (-★-) x y = x + y 

let © = "© 2013" 

let ► = 
    fun x -> 2 + x 

sprintf "Heather %s" project version © |> ° 
► ◄ |> fun ▼ -> 
    ★ <| (▼ -★- ▼) |> ° 
+0

Расширенные символы разрешены здесь, но они не являются частью синтаксиса сам язык. Так что на самом деле это не так. – CommaToast

Смежные вопросы