Quais são as origens das declarações de função Pública / Privada?

8

A questão

Quais são as origens do paradigma de função pública / privada?

fundo

Surgiu uma pergunta no bate-papo sobre arquivos de cabeçalho em C, e seu uso era principalmente para ajudar o compilador, não o programador. Entendo, porém, que este é o primeiro uso do conceito de funções "Privadas", ou funções que não são prototipadas no arquivo de cabeçalho. Se o C não tivesse usado arquivos de cabeçalho para declarar funções, ainda teríamos o conceito atual de funções públicas e privadas, como visto em C # ou Java? Ou esse conceito foi desenvolvido inicialmente em outro lugar e simplesmente implementado no esquema C Header / Source

Ampt
fonte

Respostas:

10

Privado / público vem do idioma original do OO, Simula , que antecedeu o C por alguns anos. De acordo com o artigo da Wikipedia, o conceito original foi implementado pela primeira vez na variante TOPS / 10 do Simula e foi integrado ao padrão de linguagem principal em 1987. Porém, não diz quando o TOPS / 10 Simula foi criado pela primeira vez. pode ou não ter sido anterior a C.

Independentemente, mesmo que C e seu sistema de arquivos de cabeçalho não existissem, as linguagens de programação modernas ainda teriam herdado o conceito de encapsulamento através do sistema público / privado da Simula.

Mason Wheeler
fonte
5
E, é claro, o código de mainframe da LONG antes de 1987 tinha rotinas "símbolos externos" (== "públicos") e não externas (== "privadas"), sem as palavras-chave específicas.
Ross Patterson
1

Penso que a ideia de tornar partes do seu código privadas tem raízes que vão mais longe do que o Simula. Scheme (1975) foi o primeiro idioma a implementar fechamentos, o que lhe dá a possibilidade de encapsular dados como lambdas. O esquema também permite especificar funções internas usando a palavra-chave define.

Tornar as funções privadas permite que mais abstração seja incorporada a um programa. A construção de abstrações em programas tem uma longa história, com linguagens variantes do LISP, como Scheme, contribuindo muito para o desenvolvimento de linguagens de programação modernas.

Estrutura e interpretação de programas de computador de Abelson, Sussman é um excelente livro para aprender mais sobre abstrações se você estiver interessado nessas coisas.

Nicolas
fonte
é difícil ler este post (parede de texto). Você se importaria de editá -lo em uma forma melhor?
mosquito