Linguagens de programação, linguagens posicionais e linguagens naturais

8

Algumas linguagens de programação são modeladas no código da máquina, como linguagens de montagem. Outros idiomas são modelados em um idioma natural, o idioma inglês. Outros não são modelados no código de máquina ou na linguagem natural. Idiomas como PROLOG, por exemplo, não seguem nenhum dos modelos.

Me deparei com este módulo Perl Lingua :: Romana :: Perligata , que permite escrever programas usando uma sintaxe muito semelhante ao latim.

Existem linguagens de programação que possuem menos sintaxe posicional?

Existem outros idiomas ou módulos que permitem escrever em sintaxes inspiradas em outros idiomas naturais, como francês, hebraico ou farsi? Há uma lista muito longa na Wikipedia , mas a maioria desses projetos está morta.

Há uma pergunta relacionada no StackOverflow . A resposta que foi aceita é "Use Google".

Виталий Олегович
fonte
1
Não totalmente relacionado, mas muitas das respostas envolvem idiomas que suportam modificação de sintaxe e, portanto, pode ser o que você está procurando: http://programmers.stackexchange.com/questions/145751/has-whitespace-in-identifiers-ever --been-idiomático
Telastyn
2
Algumas linguagens de programação não são modeladas no código de máquina ou na linguagem natural. Linguagens como PROLOG, por exemplo, não seguem qualquer modelo ...
Andres F.
Você também deve observar as linguagens de programação inspiradas principalmente na matemática. Pelo menos na pesquisa em PL, estas são bastante comuns.
Tikhon Jelvis
@TikhonJelvis, você quer dizer que, para uma linguagem de programação, poder expressar estruturas e conceitos matemáticos é considerado mais importante do que ser semelhante a linguagens naturais?
214126 #: 214126 Código do anúncio
Tipo de. Particularmente, estou pensando em linguagens em que você representa a computação principalmente usando idéias matemáticas. Linguagens de programação principalmente funcionais como Haskell. Portanto, ele não apenas expressa conceitos matemáticos, mas os utiliza para tudo, como representar estado e E / S. Também está mais próximo da notação matemática do que de uma linguagem natural.
Tikhon Jelvis

Respostas:

2

A única linguagem de programação escrita atualmente usada em que posso pensar em detalhes é o HTML. Agora, dependendo da sua definição de linguagem de programação, isso pode ou não contar.

Para ajudá-lo a entender por que não há muitas linguagens de programação de alto uso com menos sintaxe posicional, você precisa entender como a maioria das linguagens de programação é projetada. A maioria das linguagens de programação é baseada em gramáticas inequívocas, principalmente pelo uso de gramáticas LL e LR. Para manter as gramáticas inequívocas, a maior parte da tecnologia depende do uso da ordem dos símbolos e palavras, por exemplo, terminais, para tornar a entrada inequívoca. O que você procura são idiomas que desistem de tornar a gramática inequívoca. Se os compiladores não puderem usar a posição para decidir se a gramática é inequívoca, então o compilador precisará de outras dicas para torná-la inequívoca, portanto prefixos como #,%, 'e ". Outra técnica é associar palavras-chave a cada valor, ou seja, width = 10, que é o que o HTML faz.

As linguagens declarativas são as mais próximas que conheço, como PROLOG e SQL, mas novamente exigem o uso de alguns valores posicionais.

As únicas outras línguas que vêm à mente são as línguas faladas nos sistemas de IA que processam as entradas, como Watson , mas, novamente, você considera isso uma linguagem de programação; se você considera o SQL uma linguagem de programação, por que não uma consulta verbal para o Watson.

Guy Coder
fonte
Obrigado pela ótima explicação! Eu acho que dessa maneira a linguagem HTML deve ter um grande número de palavras-chave. Eu acho que as expansões regulares em tokens podem ser usadas para decidir o tipo de um token. Claro que isso tornaria o compilador muito mais lento.
2141212 # 039; # 039; 00
Além disso, por extensão, XML pode ser considerado.
Alfa64
3
Pode considerar Forth, que não tem muita gramática.
Gort the Robot
1
O AFAIK HTML não é uma linguagem de programação.
Jcora # 22/12
3
HTML é uma linguagem de marcação ; é isso que o M significa, não é uma linguagem de programação porque não é Turing completo! XML definitivamente também não é uma linguagem de programação. Eles são formatos de codificação de dados ! É como dizer que um JPEG é uma linguagem de programação!
2

O Oracle Policy Automation possui regras de negócios codificadas em linguagem natural. Vale a pena dar uma olhada.

Um exemplo é:

Human Resources Policy 100 – Maternity Leave 

100.1. The employee is eligible for maternity leave if

a. The employee is female and
b. Either
 i. The employee has given birth to a natural child or
 ii. The employee has taken legal custody of an adopted child
 and
c. The employee is a full time employee and
d. The employee has been employed for at least 12 months continuously

A fonte original do exemplo.

A documentação oficial do Oracle está aqui .

Paul Fowler
fonte