É programação funcional o próximo passo para a programação de linguagem natural? [fechadas]

StackOverflow https://stackoverflow.com/questions/285848

  •  08-07-2019
  •  | 
  •  

Pergunta

Esta é a minha primeira pergunta, por isso estou um pouco nervoso sobre isso porque eu não tenho certeza se eu entender o significado através bem o suficiente. De qualquer forma, vamos lá ....

Sempre que novos marcos na programação ter sido atingido parece que eles sempre tiveram um objetivo em comum:. Para tornar mais fácil para programadores, assim, para o programa

A linguagem de máquina, opcodes / mnemônicos, procedimentos / funções, estruturas, classes (OOP) etc. sempre ajudou, em seu tempo, com o plano, os programas de estrutura e de código de uma forma mais natural, compreensível e melhor manutenção.

De programação de cursos funcional não é de forma uma novidade, mas parece que ele tem experimentado uma espécie de renascimento nos últimos anos. Eu também acredito que FP vai ter um enorme impulso quando a Microsoft irá adicionar F # para suas linguagens de programação tradicionais.

Voltando à minha pergunta original, eu acredito que, finalmente, a programação será feito em uma linguagem natural (Inglês) com muito poucas restrições ou regras. O compilador irá fazer parte de um sistema de AI / NLP que os extratos de informações a partir do código ou devo dizer o texto ea transforma em uma linguagem intermediária que o compilador pode compilar.

Assim, faz FP tomar programação mais perto de programação de linguagem natural ou é sim um obstáculo e integrar OOP nos levará mais rápido à programação de linguagem natural?

Esta questão não deve ser usado para discutir a usabilidade ou viabilidade de programação em linguagem natural, porque só o futuro dirá.

Foi útil?

Solução

Desculpe, eu não concordar em tudo. Código é em última análise, um modelo para fazer as coisas (objetos), por isso tem que ser muito preciso e para funcionar de forma confiável governado por regras. linguagem natural não vai assumir a programação mais cedo do que esboçando idéias em guardanapos assumirá engenharia mecânica.

Outras dicas

Eu, pessoalmente, ter chegado à conclusão de programação de linguagem natural é um pouco crack.

Inglês não é adequado exatamente para ser usado plenamente como uma linguagem de programação, muitas palavras abstratas que não têm nenhuma correlação na programação, como termos emotivos e outras noções abstratas que não têm lugar na programação, por assim dizer programação poderia ser "linguagem natural" viria a seguir, que "linguagem natural" poderia ser a programação, mas não é.

Agora, enquanto eu conseguir o que você está dizendo aqui, o problema é o idioma Inglês tem muitas termos de sucata e nomes repetidos para as mesmas coisas, então nós estaria usando algo que não é nem específico para o domínio da programação, para a tarefa de programação.

Eu acho que é mais adequado que as pessoas entendam que a programação é de fato uma linguagem altamente especializada, e usar seus cérebros e aprender a código de uma linguagem, que é simples, declarativa, e tem uma definição consistente, ao contrário do Inglês, onde definição é altamente subjetivo.

Depois de aprender os meandros de uma língua, e aprender seus esquemas e comportamentos, você pode combiná-los para fazer coisas novas.

Tome Perl, todos lambasts de TI para ser ruído na linha, mas quando você sabe que muitas linguagens de programação, uma vez que você passar os obstáculos iniciais de "OMG de ruído de linha", há um grau de intuição sobre isso onde você pode fazer coisas para cima você nunca leu sobre e depois vê-lo magicamente funciona exatamente como você esperava.

E IMHO, Domain Specific Languages ??trunfo queridos para resolução de problemas direcionados falado.

"Então, faz FP tomar programação mais perto de programação de linguagem natural ou é sim um obstáculo e integrar OOP nos levará mais rápido à programação de linguagem natural?"

Nem. Ambos operam no mesmo princípio que você tem que ser específico sobre o que você deseja que o computador para fazer. Deve haver não espaço a incertezas, e nem paradigma tem qualquer a ver com as línguas naturais. Eles resolver um problema inteiramente diferente:. Isso de gerir e código complexo estruturação e grandes bases de código

O grande obstáculo nas línguas naturais é a análise. É impossível analisar de forma inequívoca linguagem natural. Mesmo os seres humanos não podem fazê-lo sem um monte de informações de contexto (expressões faciais, tom de voz) e, mesmo assim, ainda entendi errado muitas vezes.

OOP e FP são apenas sobre o que acontece após a análise. Que significado é atribuído a cada elemento semântico, uma vez que foi identificado e analisado.

Talvez possamos um dia ser capaz de programar em linguagem natural. Eu duvido que vai acontecer no próximo par de décadas, mas pode acontecer um dia. Mas paradigmas de programação de hoje vai nem acelerar esse processo ou atrasá-lo. Eles simplesmente não têm nada a ver com isso, e não ajuda resolver o problema de análise.

Eu não acho que a programação funcional é mais perto de programação de linguagem natural do que a programação OO. A programação funcional tem uma sintaxe muito orientada verbo. Quando você programar em Lisp ou Scheme, você gasta muito tempo pensando sobre as funções e as ações que pretende tomar em seus dados. Na programação OO, você gasta a maior parte de seu tempo pensando sobre objetos, portanto, parece muito orientada substantivo. No entanto, em Smalltalk, C ++ e Java, você também tem métodos, que permitem que você aplique verbos para todos os seus substantivos (por assim dizer).

Eu não acho que a programação OO nos levará necessariamente à programação de linguagem natural, mas do meu ponto de vista é um pouco mais perto do que a programação funcional. A programação funcional, para mim, parece um pouco mais perto de matemática do que à linguagem natural. Isso não é uma coisa tão ruim, já que talvez a matemática é a linguagem que deve estar pensando em quando programar qualquer maneira.

Apenas FYI, Inform 7 é provavelmente o mais próximo que alguém tem chegado a programação de linguagem natural. É uma linguagem para um domínio muito específico: escrever ficção interativa, o tipo de software que começou com "jogos de aventura".

O surto atual de interesse no resultado programação funcional principalmente em C # 3.0 é legal novos recursos é basicamente para permitir o paralelismo e denota uma mudança para a computação multi-core. IMHO, eu não acho que podemos considerar este um próximo passo para a 'programação de linguagem natural'

Se você está procurando a próxima evolução em linguagens de programação, gostaria de olhar para DSLs. DSL permite línguas altamente personalizados que permitem aos usuários biz sofisticadas para configurar um sistema sem ter que se preocupar com a codificação de detalhes, tais como tipos de dados, fios e widgets de interface do usuário.

As linguagens funcionais terão seu lugar no espaço "processamento altamente paralelo".

Você acha que questões subjetivas vai ter este fim aqui para "Windows Internals 5º Elemento" adicionado ao banco de dados e enviado para o meu endereço? Se assim for, a programação de linguagem natural será muito perto de programação funcional, uma vez que eu perguntei a minha pergunta de uma maneira um tanto funcional. Se não, então a programação de linguagem natural não vai chegar a minha encomenda enviado, não é? A programação funcional pode trabalhar porque ainda não tem nada a ver com as línguas naturais.

No. A programação funcional nos levará mais perto de provar compiladores. Isso é compiladores que provam mais afirmações sobre seu código. Quanto mais compiladores pode provar para nós, o desenvolvimento de software mais perto chega a ser de engenharia em vez de arte.

A PNL linguagem de programação é provavelmente mais de um "faça o que eu quero dizer não é o que eu digo" linguagem de estilo. Isso é provavelmente o oposto da direção linguagens funcionais ir.

"Todas as linguagens de programação estão convergindo para LISP."

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top