Como a palavra "produção" acabou sendo sinônimo da palavra "regra" no contexto da Ciência da Computação?
Estou estudando linguagens formais e sistemas de bases de produção (sistemas de bases de regras) e estou um pouco confuso sobre por que essas duas palavras "produção" e "regra" significam a mesma coisa em tantos contextos na Ciência da Computação.
No idioma inglês, eles não parecem ter o mesmo significado. Eu não sou um falante nativo de inglês, mas sei que uma regra se refere a algo que não se deve / deve fazer quando se fala de pessoas ou a algo que, se repetido várias vezes, dará o mesmo resultado e dizemos que funciona de acordo com algumas regras ( como funciona, definido por alguns protocolos / procedimentos sempre iguais).
Produção refere-se a algo completamente diferente ... a fase de alguns bens físicos ou software que estão sendo fabricados / produzidos atualmente. O ato de fazer algo físico ou alguma obra de arte, alguma escrita, algum desenho, algo que é feito com as capacidades físicas ou mentais de alguém. Dizemos que a coisa específica é produzida.
No entanto, na ciência da computação, essas palavras que representam coisas completamente diferentes em inglês significam a mesma coisa em CS. Como esses termos acabaram sendo semelhantes no CS.
Existe algum tipo de dicionário etimológico para ciência da computação. Um dicionário que nos diz como acabaram os termos em ciência da computação?
BTW: Fato interessante: nem a produção nem a regra são tags neste site do Stack Exchange.
Apesar da aplicação principal das gramáticas formais atualmente nos analisadores , sua origem vem das línguas naturais, especificamente do campo linguístico da gramática gerativa. Chomsky os usou para descrever como produzir frases, e é por isso que elas são chamadas de regras de produção.
Uma gramática possui "Regras de produção:" regras sobre as novas sequências de símbolos que você pode produzir a partir de sequências antigas. Nos casos de gramáticas sem contexto, essa sequência antiga é sempre um único símbolo não terminal.
Às vezes, as pessoas abreviam "regras de produção" para "produções". Às vezes, as pessoas abreviam "regras de produção" para "regras".
Os dois não são sinônimos: há muitas coisas que são regras, mas não são produções, e as pessoas podem chamar um único uso de uma regra de produção, ou a própria regra é uma produção. Geralmente, a esperança é que fique claro a partir do contexto o que se entende.
Que tipo de contextos distinguiria uma produção de uma regra?
Por exemplo, na inferência de tipo (ou em qualquer tipo de definição indutiva nas Linguagens de Programação), temos regras de inferência, mas elas são separadas de (embora relacionadas a) produções em uma gramática. Da mesma forma, existem "sistemas baseados em regras" na IA, que são uma coisa totalmente diferente.
Regras de inferência do Prolog desenvolvidas historicamente a partir de regras de produção (através de uma forma de gramática de atributos).
Um dos artigos fundamentais da teoria formal da linguagem, Três modelos para a descrição da linguagem (Noam Chomsky, 1956), descreve mecanismos matemáticos pelos quais as frases podem ser produzidas (geradas), semelhante à maneira pela qual os humanos produzem frases ao falar ou escrever . As frases são produzidas aplicando regras de reescrita, portanto, essas regras são regras de produção de idiomas.
As produções de nomes abreviados para regras de produção surgiram mais tarde e são tecnicamente imprecisas (Chomsky usa esse termo em seu artigo para nomear o que é produzido pelas regras, não como um termo para as próprias regras).