O Python usa famosa indentação para definir sintaticamente blocos de código. (Veja Instruções compostas na Referência da linguagem Python). Depois de anos usando o Python, ainda estou intrigado e gosto muito desse recurso de sintaxe.
Mas eu me pergunto: além do Python e sua linguagem "predecessora" (*) ABC, que outras linguagens de programação existem por aí usando recuo para definição de blocos de código ? Blocos de código significa aqui "múltiplas instruções que de alguma forma são tratadas como um componente".
Estou particularmente interessado em linguagens de programação práticas , mas também vale a pena mencionar as linguagens esotéricas .
(*): " Predecessor " é a minha escolha de palavra por omissão de conhecer aqui uma melhor. Guido van Rossum, criador do Python, descreveu a relação entre Python e ABC em relação à indentação em uma entrevista como esta: " A escolha da indentação para agrupar não era um conceito novo no Python; eu a herdei da ABC. "
fonte
Respostas:
A Wikipedia possui uma extensa lista de idiomas que usam a regra secundária 1 :
1: Eu nunca ouvi esse termo antes de mim.
fonte
Existem: Elm , Haskell , o seu antecessor Miranda e seu antecessor ISWIM , YAML onde os espaços são cruciais para a sintaxe e guias são proibidos, OCCAM , Coffee roteiro e Cokescript ambos são linguagem para compiladores de linguagem com JavaScript como alvo e esotéricos espaços em branco .
Há também o Agda - provador de teoremas interativo, que provavelmente não é o que você tinha em mente, mas seu lexer é muito sensível ao espaço em branco.
Makefile , que reúne destinos com intenções baseadas em guias.
fonte
(x-y)
não é(x - y)
) mesmo que possa não ser "prática" o suficiente para o OP.Faço se encaixa na sua descrição, mesmo que provavelmente não seja exatamente o que você tem em mente, com sua sintaxe e poder limitados.
É infame indica seus blocos de código ( receitas ) com uma forma particular de espaço em branco: um carácter de tabulação. Formas alternativas estão disponíveis (por exemplo, o GNU Make suporta o uso de um caractere alternativo ), mas raramente são usadas na prática.
Outro exemplo pairando no limite são os manuais Ansible . Eles são especificados no YAML , que depende fortemente do recuo. O YAML não é uma linguagem de programação, mas os manuais do Ansible podem ser considerados como programas específicos do domínio.
fonte