Estou compilando um histórico detalhado da linguagem Pascal e faltam alguns detalhes.
Hoje, existem tantos recursos que consideramos óbvios. Quais recursos contribuíram significativamente para a evolução de Pascal e por que foram significativos?
Estou procurando recursos de idioma, não recursos de plataforma ou estrutura. Assim como sobrecarga do operador ou parâmetros padrão, mas não o suporte ao Linux ou o novo widget Rich Text.
Eu sei que existem alguns sabores diferentes de Pascal (Delphi, Free Pascal, Oxygene, Quick Pascal, Apple Pascal, etc.) e eles introduziram os mesmos recursos em momentos diferentes e em paralelo. Está bem. Estou olhando para o idioma Pascal como um todo e quando ocorreram marcos significativos (datas, versões etc.)
Apps
, que é apenas um novo sabor do cliente-servidor).Respostas:
De uma perspectiva histórica da linguagem, provavelmente a maior contribuição de Pascal foi a forte segurança do tipo. Essa batalha está praticamente terminada agora - o lado de Pascal venceu - e o ponto de inflexão industrial foi o Java. Mas, durante muito tempo, C foi favorecido à frente de Pascal por pessoas que se consideravam codificadores crescidos em grande parte por causa disso: as pessoas queriam a liberdade de manipular seus indicadores como se fossem números inteiros. As implementações práticas de Pascal tinham brechas, no entanto, como sindicatos que não controlavam dinamicamente o campo discriminante, ou até tinham a conversão de tipos de ponteiros a ponto de serem todos menos C (o Turbo Pascal era um deles).
Isso e uma simplificação da complicada especificação ALGOL 68 [1] podem ser um ponto de partida.
[1] Tente ler o relatório ALGOL 68 em algum momento - é definitivamente um produto dos anos 60! Um site na Web menciona alguns de seus estranhos jargões: 'token de ônibus', 'árvores de produção invisíveis', 'ambientes primordiais', 'uniões incestuosas', 'noções', 'protonotions', 'metanotions', 'hypernotions', ' paranoções ", etc.
fonte
Eu diria que as duas forças motrizes mais importantes ao longo da história de Pascal foram:
fonte
Você realmente precisa voltar às origens - encontre um pouco da história de Niklaus Wirth. Pascal começou sua vida como uma língua de ensino. "Algoritmos + estruturas de dados = programas" é um bom ponto de partida.
Na época, Pascal era muito mais simples que o Algol 68 e o PL / 1. Forçou a estrutura e a declaração, além de uma forte segurança de tipo, ao contrário do Fortran4 (o Fortran 77 melhorou um pouco as coisas lá, mas você ainda podia jogar terrivelmente rápido-e-solto). E comparado ao COBOL, era curto, simples e mais fácil de escrever programas. (Olá mundo em cerca de 6 linhas em vez de 600).
Quando se originou, havia coisas como matrizes de caracteres em Pascal - era para manipulação de strings. As coisas melhoraram ao longo dos anos.
Se você realmente deseja se aprofundar na história do Pascal, alguns pontos devem ser levados em consideração:
Na década de 1980, houve um enorme festival de lesmas entre Pascal e C. Havia uma grande quantidade de desenvolvimento e atividade acontecendo nos dois campos.
Como conseqüência, coisas estranhas e maravilhosas como Bliss-32, Algol e PL / 1 praticamente desapareceram - mas as idéias surgiram em Pascal.
EDIT: as matrizes de caracteres podem ser compactadas, o que confere algumas propriedades especiais, mas se você quiser o que agora sabemos como manipulação de strings, você precisará cultivá-las.
fonte
packed array[1..n] of char;
, por exemplo, em Read (ln) e Write (ln)Extensões orientadas a objetos! O Object Pascal foi o maior salto (não oficial) dos padrões com o lançamento do Delphi (1) em meados dos anos 90. É difícil escolher apenas um, mas todo o núcleo do modelo de objetos como um todo ajudou a trazer a linguagem para o status moderno. Infelizmente, até hoje, ele não foi transformado em um único padrão oficial unificado, com o qual todos os compiladores se ajustariam para simetria de codificação.
Felizmente, os desenvolvedores do projeto Free Pascal têm acomodado bastante os recursos adicionados ao Delphi pelo Borland e pelo Embarcadero. Os RemObjects não muito, mas pelo menos têm vínculos com o Embarcadero sob o Delphi Prism; portanto, qualquer desvio de um padrão (para tornar o idioma mais compatível com .NET) seria altamente documentado.
fonte
virtual
palavra-chave para torná-las substituíveis por subclasses.Apenas uma ou duas coisas que me lembro de usar Pascal há muito tempo com o MS-DOS:
O Turbo Pascal introduziu mais ou menos um tipo de IDE nos anos 80 (e o desempenho da compilação recebeu um grande impulso em comparação com o UCSD Pascal
De alguma forma, em meados dos anos 90, a Borland mudou o nome de Turbo para Borland Pascal . Como primeiro passo, as Unidades introduzidas, que permitiram dividir grandes projetos em unidades de compilação separadas.
Mais tarde, eles adicionaram também a programação orientada a objetos.
fonte
Um dos principais passos evolutivos em Pascal foi a noção adequada de strings. A ISO 7185 ("Standard Pascal") não os possuía, o que é meio embaraçoso. No entanto, todos os programadores reais precisavam deles, e implementações viáveis do Pascal (como o Borland / Turbo Pascal) os forneceram.
fonte
Olhando para as inovações da linguagem Pascal do Delphi - eu adicionaria o modelo de Propriedade, Método, Evento (PME) e a seção "Publicado" para as aulas. Isso tornou o código nativo fácil de usar e estendeu a criação de componentes. Os componentes cumpriram a promessa de Brad Cox de ICs de software.
fonte
A luta entre muitos sabores de Pascal nos anos 80 e início dos anos 90.
Você tinha o Apple Pascal , o Microsoft Pascal e o QuickPascal e o Turbo Pascal .
Todos introduziram o Object Pascal de uma maneira ou de outra (QuickPascal 1.0 e Turbo Pascal 5.5 no mesmo período). Apple porque eles exigiram para sua plataforma, Microsoft e Borland porque o OO estava se tornando 'legal' (o QuickPascal morreu logo depois e o Turbo Pascal 6.0 adicionou uma estrutura OO razoável chamada Turbo Vision ).
Rudy Velthuis é bastante completo sobre isso em sua postagem no fórum .
Você pode baixar uma imagem ISO com o DOS 6.22 e alguns dos compiladores do DOS Pascal daquela época .
fonte
Eu acho que a introdução de interfaces (no Delphi 3 IIRC) foi muito importante para torná-la uma linguagem moderna orientada a objetos.
fonte
Vou adicionar métodos anônimos e genéricos à mistura.
fonte
Novos recursos de idioma entre o Delphi 7 e o Delphi XE são descritos na página 52 neste white paper da Embarcadero:
http://www.embarcadero.com/images/dm/technical-papers/reasons-to-migrate-to-delphi-xe -white-paper.pdf
fonte
Para mim, as duas maiores coisas (depois de algumas outras línguas como C ...) foram a insensibilidade do caso e a velocidade do compilador.
E depois disso é o fato de que é mais fácil escrever com o teclado finlandês, porque não preciso constantemente das teclas {} ou outras que são difíceis de alcançar ...
Eu estive a bordo desde o Delphi2, mas usei o D1 no trabalho há alguns anos ...
fonte
Comece com "Programação Estruturada" , de Dahl, Dijkstra e Hoare. A seção de Dijkstra é fundamental, ainda hoje. A seção de Tony Hoare sobre estruturação de dados estabeleceu grande parte das bases do PASCAL. (A seção de Dahl falou sobre o que acabou se tornando programação orientada a objetos. Ele descreveu o que se tornou classe no Simula 67.)
Veja a implementação do ALGOL-W, Wirth, de uma variante do ALGOL-60.
Você também precisa conhecer o PL / I e o editor de link IBM 360 (vinculador) no momento. Era uma maravilha da generalidade, com a questão menor de correr mais devagar que o melaço em janeiro em Juneau, no Alasca. O PASCAL foi projetado especificamente para ser compilado e vinculado em uma única passagem, para maior velocidade. (Ajudou o início da linguagem em um supercomputador júnior CDC 6400, com muita memória, tornando prático um compilador de uma passagem.)
Na verdade, havia duas versões principais do PASCAL da ETH Zurich. O idioma que todos atualmente conhecem como PASCAL era na verdade PASCAL2, a segunda versão.
fonte