Turbo Pascal - Turbo Pascal

Turbo Pascal
Autor (es) original (is) Anders Hejlsberg (na Borland)
Desenvolvedor (s) Borland
lançamento inicial 1983 ; 38 anos atrás ( 1983 )
Sistema operacional CP / M , CP / M-86 , DOS , Windows 3.x , Macintosh
Plataforma Z80 , x86 , 68000
Disponível em inglês
Modelo Ambiente de desenvolvimento integrado

Turbo Pascal é um sistema de desenvolvimento de software que inclui um compilador e um ambiente de desenvolvimento integrado (IDE) para a linguagem de programação Pascal rodando em CP / M , CP / M-86 e DOS . Ele foi originalmente desenvolvido por Anders Hejlsberg na Borland e era notável por seus tempos de compilação extremamente rápidos. O Turbo Pascal, e o posterior, mas semelhante, Turbo C , tornaram a Borland uma líder no desenvolvimento para PC.

Para as versões 6 e 7 (última), foram produzidos um Turbo Pascal mais barato e um Borland Pascal mais caro ; Borland Pascal era mais orientado para o desenvolvimento de software profissional, com mais bibliotecas e código-fonte de biblioteca padrão. O nome Borland Pascal também é usado de forma mais genérica para o dialeto da linguagem de programação Pascal da Borland, significativamente diferente do Pascal padrão.

A Borland lançou três versões antigas do Turbo Pascal gratuitamente devido ao seu interesse histórico: o Turbo Pascal original (agora conhecido como 1.0) e as versões 3.02 e 5.5 para DOS.

Motivação e liberação

Philippe Kahn viu pela primeira vez uma oportunidade para a Borland, sua empresa de software recém-formada, no campo de ferramentas de programação. Historicamente, a grande maioria dos programadores via seu fluxo de trabalho em termos do ciclo de edição / compilação / link, com ferramentas separadas dedicadas a cada tarefa. Os programadores escreveram o código-fonte usando um editor de texto ; o código-fonte foi então compilado em código-objeto (geralmente exigindo várias passagens) e um vinculador combinou o código-objeto com bibliotecas de tempo de execução para produzir um programa executável.

No início do mercado de PCs IBM (1981-1983), todos os principais fornecedores de ferramentas de programação faziam compiladores que funcionavam de maneira semelhante. Por exemplo, o sistema Microsoft Pascal consistia em duas passagens de compilador e uma passagem de link final (que poderia levar minutos em sistemas com apenas disquetes para armazenamento secundário, embora os programas fossem muito menores do que são hoje). Esse processo consumia menos recursos do que o ambiente de desenvolvimento integrado (IDE) posterior . Os fornecedores de ferramentas de desenvolvimento de software direcionavam seus produtos para desenvolvedores profissionais, e o preço dessas ferramentas básicas mais as ferramentas auxiliares, como profilers, chegava a centenas de dólares.

A ideia de Kahn era empacotar todas essas funções em um kit de ferramentas de programação integrado projetado para ter um desempenho e utilização de recursos muito melhores do que as ferramentas de desenvolvimento profissional usuais e cobrar um preço baixo por um pacote que integra um editor de texto personalizado, compilador e todas as funcionalidades necessárias para produzir programas executáveis. O programa foi vendido por mala direta por US $ 49,95, sem passar por canais de vendas estabelecidos (varejistas ou revendedores).

Ao contrário de algumas outras ferramentas de desenvolvimento, os discos Turbo Pascal não tinham proteção contra cópia . Turbo Pascal veio com a "Licença de livro": "Você deve tratar este software como um livro ... [ele] pode ser usado por qualquer número de pessoas ... pode ser movido livremente de um computador para outro, por muito tempo pois não há possibilidade de ser usado em um local enquanto está sendo usado em outro. "

Recepção

Jerry Pournelle da revista Byte escreveu em fevereiro de 1984 que o Turbo Pascal "chega perto do que eu acho que a indústria de computadores está caminhando para: bem documentado, padrão, muitos recursos bons e um preço razoável". Pournelle não gostou da exigência de comprar outra licença para distribuir binários, mas observou que "não é muito mais. A Borland só quer outros $ 100" a mais do que o preço base de $ 49,95, e que "minha primeira impressão do Turbo é que é provavelmente vale $ 149,95. Parece fazer tudo o que o MT + com o Speed ​​Programming Package faz, e talvez até mais rápido e melhor ". Ele relatou em julho que, de acordo com Kahn, a IBM se recusou a revender o Turbo Pascal a menos que o preço fosse de pelo menos US $ 200; Pournelle observou que "o Turbo é muito melhor do que o Pascal que a IBM vende" e, ao contrário, o último era compatível com o IBM PCjr . Três revisores da Byte elogiaram o Turbo Pascal na mesma edição. Um chamou a versão DOS de "sem dúvida, o melhor valor de software que já comprei", e outro chamou a versão CP / M de "um excelente produto ... [Borland] merece elogios por este produto de alto valor". O terceiro afirmou que "não era um bom compilador para desenvolver aplicativos massivos", mas acrescentou que era muito superior ao BASIC , a linguagem de programação normalmente associada aos computadores domésticos na época. Ele concluiu que Turbo Pascal era "uma pechincha que não deveria ser deixada de lado".

Apesar de encontrar o que descreveu como "um bug sério" na versão 3.0 e diminuir a compatibilidade com clones de PC , a revista de fevereiro de 1986 afirmou que "é difícil evitar a recomendação do Turbo para quem deseja programar em Pascal", citando a velocidade aprimorada e rotinas gráficas. Ao revisar quatro outros compiladores Pascal em dezembro de 1986, Byte descreveu o Turbo Pascal como "prático e atraente para programadores em todos os níveis de especialização". Bruce Webster também elogiou a linguagem na revista, afirmando em agosto de 1985 que o Turbo Pascal "é mais conhecido por seu tamanho pequeno, velocidades de compilação incríveis e tempos de execução rápidos". Ele observou que a qualidade e o baixo preço do software foram especialmente surpreendentes após o " fiasco de JRT Pascal ", e afirmou que mesmo com o novo preço mais alto de $ 69,95, a versão 3.0 era "provavelmente ainda o melhor negócio de software no mercado".

A PC Magazine foi igualmente elogiosa em novembro de 1984, declarando que "nada como o Turbo Pascal jamais existiu para o PC-DOS antes". Ele elogiou o baixo preço do software, a velocidade, a documentação excepcionalmente boa para um compilador e observou a existência de muitos utilitários de outras empresas que esperavam se beneficiar da popularidade do Turbo Pascal. A revisão afirmou que o IDE que simplificou o loop edit-compile-run-debug tornou o Turbo Pascal acessível a novos programadores como o BASIC.

Em 1989, a Byte listou o Turbo C e o Turbo Pascal entre os vencedores de "Distinção" do Byte Awards. Citando sua interface de usuário e ênfase contínua na velocidade, a revista afirmou que "para prototipagem rápida não há muito melhor". Na mesma edição, Pournelle elogiou novamente a versão 4.0 e 5.0 do Turbo Pascal. Citando o Anacreon como "um bom exemplo de como um programa complexo você pode escrever em Pascal" e as muitas bibliotecas disponíveis da Borland e outros desenvolvedores, ele escreveu: "Estou cada vez mais convencido de que Turbo Pascal é a linguagem de programação escolhida para pessoas que estão mais interessadas no que querem que a máquina faça do que em como fazer isso acontecer. O Turbo Pascal pode não ser tão elegante nem tão portátil quanto o C, mas com certeza é menos obscuro. Acho que pode muito bem ser a linguagem para o resto de nós".

A Borland vendeu cerca de 250.000 cópias do Turbo Pascal em dois anos, o que Webster descreveu como "uma figura incrível para uma linguagem de computador". Ele relatou seis meses depois que o número havia subido para "mais de 400.000 cópias em um mercado estimado em apenas 30.000 compradores em potencial".

Versões

Versões CP / M e DOS

Versão 1

Capa manual do Turbo Pascal 3.0

O compilador Turbo Pascal foi baseado no compilador Blue Label Pascal originalmente produzido para o sistema operacional baseado em cassete NasSys do microcomputador Nascom em 1981 por Anders Hejlsberg . A Borland licenciou o núcleo do compilador "PolyPascal" de Hejlsberg ( Poly Data era o nome da empresa de Hejlsberg na Dinamarca) e adicionou a interface do usuário e o editor. Anders Hejlsberg ingressou na empresa como funcionário e foi o arquiteto de todas as versões do compilador Turbo Pascal e das três primeiras versões do Borland Delphi .

O compilador foi lançado pela primeira vez como Compas Pascal para CP / M , e então lançado em 20 de novembro de 1983 como Turbo Pascal para CP / M (incluindo o computador Apple II quando equipado com um SoftCard Z-80 , convertendo efetivamente o Apple baseado em 6502 em uma máquina CP / M, o Commodore 64 com cartucho CP / M e o mais recente DEC Rainbow ), CP / M-86 e máquinas DOS. Em seu lançamento no mercado dos Estados Unidos , o Turbo Pascal foi vendido por US $ 49,99, um preço muito baixo para um compilador na época. O compilador Pascal integrado era de boa qualidade em comparação com outros produtos Pascal da época.

O nome Turbo aludia à velocidade de compilação e dos executáveis ​​produzidos. O ciclo de edição / compilação / execução foi rápido em comparação com outras implementações Pascal porque tudo relacionado à construção do programa era armazenado na RAM e porque era um compilador de uma passagem escrito em linguagem assembly . A compilação foi muito mais rápida do que os compiladores para outras linguagens (até mesmo os compiladores posteriores da Borland para C) e outros compiladores Pascal, e o tempo do programador também foi economizado, pois o programa podia ser compilado e executado a partir do IDE. A velocidade de execução desses programas em formato COM foi uma revelação para desenvolvedores cuja única experiência anterior em programação de microcomputadores era com BASIC interpretado ou UCSD Pascal , que compilava em p-código que era então interpretado em tempo de execução.

A versão 1 era um sistema tudo-em-um básico, trabalhando na memória e produzindo arquivos executáveis .COM para DOS e CP / M, e executáveis .CMD equivalentes para CP / M-86 (totalmente diferente dos arquivos em lote .CMD usados ​​posteriormente em Microsoft Windows de 32 bits). Os arquivos de código-fonte foram limitados a 64 KB para simplificar o IDE, e os arquivos DOS .COM foram limitados a 64 KB cada de código, pilha e variáveis ​​globais (estáticas). O código-fonte do programa pode ser estendido usando o recurso de inclusão se o código-fonte exceder o limite de memória do editor.

Havia diferentes versões do Turbo Pascal para computadores rodando DOS, CP / M ou CP / M-86 com 64 KB de memória e pelo menos uma unidade de disquete. A versão CP / M podia rodar em muitas máquinas CP / M da época com processadores Z80 , ou um Apple II com placa Z80. As versões DOS e CP / M-86 rodaram nas muitas máquinas 8086 e 8088 que se tornaram disponíveis, incluindo o IBM PC. O instalador, o registro e o compilador com seu IDE e o código-fonte de um programa de planilha simples chamado MicroCalc, escrito por Philippe Kahn como demonstração, caberia em um único disquete. Uma cópia de disco sem MicroCalc acomodaria o código-fonte e o executável compilado de um programa de tamanho razoável - como era comum na época os usuários terem apenas uma unidade de disquete como armazenamento em massa , era uma grande conveniência poder caber o compilador e o programa são gravados em um único disco, evitando trocas intermináveis ​​de discos.

Bill Gates viu o sucesso do Turbo Pascal em termos muito pessoais e "não conseguia entender por que as coisas [da Microsoft] eram tão lentas. Ele chamava Greg Whitten [diretor de programação das linguagens da Microsoft] e gritava com ele por meia hora" . Ele não conseguia entender por que Kahn havia sido capaz de derrotar um concorrente estabelecido como a Microsoft. "

A arquitetura das várias máquinas que executam o MS-DOS limitou adicionalmente a memória máxima do usuário a menos de 1 MB (por exemplo, máquinas compatíveis com o hardware do IBM PC foram limitadas a 640 KB).

O IDE Turbo Pascal era muito avançado para sua época. Ele teve um bom desempenho e compilação muito rápido com a quantidade de RAM de um computador doméstico comum. O IDE era simples e intuitivo de usar e tinha um sistema de menus bem organizado. As primeiras versões do editor usavam funções-chave do WordStar , que era o padrão de fato na época. As versões posteriores do IDE, projetadas para PCs com mais espaço em disco e memória, podem exibir as definições das palavras-chave do idioma colocando o cursor sobre uma palavra-chave e pressionando a tecla F1 (convencionalmente usada para exibir a ajuda). Muitas definições incluíram código de exemplo.

Além dos programas executáveis ​​padrão, o compilador podia gerar programas Terminate and Stay Resident (TSR), pequenos utilitários que ficavam na memória e deixavam o computador fazer outras tarefas - executar vários programas ao mesmo tempo, multitarefa , não estava disponível de outra forma. A própria Borland produziu um pequeno pacote de aplicativos chamado Sidekick que era um TSR que permitia ao usuário manter um diário, anotações e assim por diante.

Versão 2

A versão 2, lançada alguns meses depois em 17 de abril de 1984, foi uma melhoria incremental do Turbo Pascal original, a ponto de o manual de referência ser inicialmente idêntico à versão 1, até ter 1983 como a data de copyright em alguns dos exemplo de saída do compilador, mas tinha um manual separado "Adendo ao Manual de Referência: Versão 2.0 e Suplemento 8087" com numeração de página separada.

As adições incluíram um sistema de sobreposição , onde procedimentos de sobreposição separados seriam trocados automaticamente do disco para um espaço reservado na memória. Essa memória fazia parte dos 64kB de RAM usados ​​pelo código do programa e tinha automaticamente o tamanho do maior procedimento de sobreposição. Os procedimentos de sobreposição podem incluir as próprias seções de sobreposição, mas, a menos que um disco RAM seja usado, a troca de disco resultante pode ser lenta.

2.0 também adicionou o procedimento Dispose para gerenciar o heap , permitindo que variáveis ​​dinâmicas individuais sejam liberadas, como uma alternativa ao sistema mais primitivo 'Mark / Release'. e maior compatibilidade com comandos WordStar além do uso do teclado numérico no IBM PC e compatíveis. Esses PCs também tinham uma nova janela de texto e comandos de modo gráfico CGA , além de serem capazes de usar o alto-falante do PC para tons.

Finalmente, as máquinas DOS e CP / M-86 com um coprocessador matemático 8087 (ou compatível posterior) tinham um compilador TURBO-87 alternativo disponível para compra. Ele suportava os tipos de dados reais longos do 8087 com uma faixa de 1,67E-307 a 1,67E + 308 a 14 dígitos significativos de precisão, mas com uma velocidade de processamento muito maior. O manual observa que, embora o código-fonte para os tipos de dados reais do software do Turbo Pascal ofereçam uma faixa de 1E-63 a 1E + 63 a 11 algarismos significativos, eles eram incompatíveis em um nível binário: além de ter uma faixa muito maior, o software os reais ocupavam seis bytes na memória e os 8087, oito.

Como a versão 1, a versão 2 para CP / M-80 rodou apenas em máquinas CP / M baseadas em Z80 .

Versão 3

A versão 3 foi lançada em 17 de setembro de 1986.

Turbo Pascal 3 suporta gráficos de tartaruga .

Além dos números reais do software padrão e da edição 8087 do compilador, a Borland também ofereceu uma versão BCD (TURBOBCD) que oferecia o mesmo intervalo numérico dos tipos de dados reais, mas com 18 algarismos significativos.

Versões DOS

Versão 4

Lançada em 20 de novembro de 1987, a versão 4 foi totalmente reescrita, com aparência e funcionamento interno muito alterados. O compilador gerou executáveis ​​no formato .EXE no DOS, em vez dos executáveis ​​.COM mais simples, porém mais restritos. As versões então obsoletas do sistema operacional CP / M e CP / M-86 foram descartadas quando o Turbo Pascal foi reescrito. A versão 4 introduziu unidades e uma interface de usuário de texto em tela cheia com menus suspensos; as versões anteriores tinham uma tela de menu baseada em texto e um editor de tela inteira separado. (O Microsoft Windows ainda era muito experimental quando a primeira versão foi lançada, e até mesmo os ratos eram raros.)

Um pacote adicional, o Turbo Pascal Graphix Toolbox, estava disponível para o Turbo Pascal V4.

Versão 5.0

Os monitores coloridos estavam substituindo o monocromático; O Turbo Pascal versão 5.0, lançado em 24 de agosto de 1988, introduziu o azul como a cor de fundo padrão do editor, usada pelos compiladores DOS da Borland até o final desta linha de produtos em meados da década de 1990.

Versões posteriores vieram em dois pacotes com o mesmo número de versão: um pacote "Turbo" mais barato e um pacote "Borland" com recursos aprimorados e mais complementos.

Versão 5.5

Esta versão, lançada em 2 de maio de 1989, introduziu recursos de programação orientada a objetos para a linguagem Pascal, incluindo o conceito de classes, objetos estáticos e dinâmicos, construtores e destruidores e herança, que se tornariam a base para o Object Pascal encontrado em Borland Delphi. O IDE usa o esquema de cores azul padrão que também seria usado em produtos Borland Turbo posteriores. Outras mudanças no IDE incluem:

  • Adição de depurador passo a passo para IDE.
  • Ajuda contextual com descrição de todas as funções integradas e a capacidade de copiar fragmentos de código da janela de ajuda para editar.

Versão 6.0

A versão 6 foi lançada em 23 de outubro de 1990.

Mudanças de 5.5 incluem:

  • Adição do recurso de linguagem assembly inline para a linguagem Pascal.
  • Adição da biblioteca Turbo Vision .
  • As mudanças no IDE incluem suporte a mouse, área de transferência para manipulação de texto, interface de documentos múltiplos com suporte para até nove janelas de edição.
  • O depurador oferece suporte ao uso de pontos de interrupção e relógios.

Versão 7.0

A versão 7 foi lançada em 27 de outubro de 1992.

Mudanças de 6.0 incluem:

  • O compilador suporta a criação de executáveis ​​DOS e Windows, DLL do Windows.
  • Mudanças no IDE incluem adição de realce de sintaxe.

Turbo Pascal para Windows

Duas versões chamadas "Turbo Pascal for Windows" (TPW), para Windows 3.x , foram lançadas: TPW 1.0, baseado no Turbo Pascal 6, mas lançado cerca de 2 anos depois, e 1.5, lançado depois do Turbo Pascal 7; eles foram sucedidos por Borland Pascal 7, que tinha suporte para Windows. O compilador do Windows em Pascal 7 foi intitulado Borland Pascal for Windows .

Ambas as versões criaram programas compatíveis com o Windows e apresentavam um IDE baseado em Windows, em oposição ao IDE baseado em DOS no Turbo Pascal. O IDE e os comandos do editor obedecem às diretrizes da interface de usuário do Microsoft Windows em vez da interface de usuário TP clássica. O suporte para programas do Windows exigia a biblioteca ObjectWindows , semelhante, mas não idêntica à do primeiro lançamento do Borland C ++ , e radicalmente diferente do ambiente DOS Turbo Vision anterior . O Turbo Pascal foi substituído pela plataforma Windows pela Delphi ; o compilador Delphi pode produzir programas de console e aplicativos de interface gráfica com o usuário (GUI), de forma que o uso de Turbo e Borland Pascal se torna desnecessário.

Turbo Pascal para Macintosh

A Borland lançou o Turbo Pascal para Macintosh em 1986. Muito parecido com as versões 1 a 3 para outros sistemas operacionais, ele foi escrito em linguagem assembly compacta e tinha um IDE muito poderoso, mas nenhum bom depurador. A Borland não ofereceu suporte a esse produto muito bem, embora tenha lançado uma versão 1.1, com patch para rodar no Macintosh II de 32 bits . O suporte ao Macintosh foi abandonado logo depois.

Lançamentos de freeware

A Borland lançou várias versões do Turbo Pascal como freeware depois que se tornaram "software antigo" ( abandonware ), com 1.0 para DOS em 1 de fevereiro de 2000, 3.02 em 10 de fevereiro de 2000, 5.5 em 21 de fevereiro de 2002, Turbo Pascal 7.01 versão francesa no ano 2000. A maioria dos downloads ainda está disponível no site sucessor da Embarcadero Technologies .

Sucessores

Em 1995, a Borland abandonou o Turbo / Borland Pascal e o substituiu pelo ambiente de desenvolvimento rápido de aplicativos (RAD) Borland Delphi , baseado em Object Pascal. As versões do Delphi de 32 e 64 bits ainda suportam os aprimoramentos Pascal mais portáteis dos produtos anteriores (ou seja, aqueles que não são específicos para o código de 16 bits), incluindo o modelo de objeto estático anterior. Essa compatibilidade com versões anteriores da linguagem significa que muito código Turbo Pascal antigo ainda pode ser compilado e executado em um ambiente moderno hoje.

Outros fornecedores produziram ferramentas de desenvolvimento de software compatíveis com Turbo Pascal. Os mais conhecidos são Free Pascal e Virtual Pascal .

Na educação

Borland Pascal ainda é ensinado em alguns países nos níveis secundário, sexto ano e universitário. É ensinado em faculdades e universidades na Costa Rica, Turquia, Iraque, Alemanha, Federação Russa, EUA e em escolas secundárias na Argentina, Bélgica, Bulgária, Canadá, Costa Rica, Croácia, França, Hungria, Itália, Jamaica, Líbia, Moldávia , Romênia, Sérvia, Tunísia, Ucrânia, República Tcheca e Vietnã. Foi a linguagem de programação educacional aprovada pelo estado para todas as escolas secundárias sul-africanas até 2002. Hoje continua a ser ensinada em algumas universidades ao redor do mundo como uma introdução à programação de computadores, geralmente avançando para C ou Java ou ambos.

Alguns professores preferem usar Borland Pascal 7 ou Turbo Pascal 5.5 por causa de sua simplicidade em comparação com IDEs mais modernos, como Microsoft Visual Studio ou Borland JBuilder , por isso apresenta aos alunos não familiarizados com computação tarefas comuns, como usar o teclado e atalhos de teclado ( TP 5.5 não tem suporte para mouse), familiariza-os com os comandos DOS (que são basicamente os mesmos do prompt de comando do Microsoft Windows) e permite que eles escrevam programas sem gastar muito esforço para fazer o ambiente funcionar. TP 5.5 está disponível para download gratuito na Borland.

Recursos

Linguagem de montagem

Embora todas as versões do Turbo Pascal pudessem incluir código de máquina embutido , a partir da versão 6 foi possível integrar a linguagem assembly no código-fonte Pascal.

O suporte para os vários modelos de memória 8086 foi fornecido por assembly embutido, opções de compilador e extensões de linguagem, como a palavra-chave "absolute". O Turbo Assembler , TASM, um assembler x86 padrão independente do TP, e compatível com a fonte do amplamente usado Microsoft Macro Assembler MASM, foi fornecido com as versões aprimoradas "Borland Pascal".

Depuração e criação de perfil

O IDE forneceu vários recursos de depuração, incluindo uma única etapa , exame e alteração de variáveis ​​e pontos de interrupção condicionais. Em versões posteriores, os blocos de linguagem assembly podem ser percorridos. O usuário pode adicionar pontos de interrupção em variáveis ​​e registros em uma janela IDE. Os programas que usam o modo gráfico do IBM PC podem alternar entre os modos gráfico e texto automaticamente ou manualmente, ou exibir ambos em duas telas. Para casos em que os recursos de depuração relativamente simples do IDE eram insuficientes, a Turbopower Software produziu um depurador mais poderoso, o T-Debug. A mesma empresa produziu Turbo Analyst e Overlay Manager para Turbo Pascal. O T-Debug foi mais tarde atualizado para o Turbo Pascal 4, mas descontinuado com o lançamento do Turbo Debugger (TD) da Borland , que também permitiu alguma intervenção de hardware em computadores equipados com o novo processador 80386 .

O TD era geralmente fornecido em conjunto com o Turbo Assembler e o Turbo Profiler, um criador de perfil de código que relatava o tempo gasto em cada parte do programa para auxiliar na otimização do programa , encontrando gargalos. Os livros incluídos com Borland Pascal tinham descrições detalhadas da linguagem assembler Intel , incluindo o número de ciclos de clock exigidos por cada instrução. O desenvolvimento e a depuração podem ser realizados inteiramente dentro do IDE, a menos que os recursos de depuração avançados do Turbopower T-Debug e, posteriormente, do TD, sejam necessários.

Versões posteriores também suportam depuração remota por meio de um cabo de comunicação RS-232 .

Unidades

Com o passar dos anos, a Borland aprimorou não apenas o IDE, mas também estendeu a linguagem de programação. Um sistema de desenvolvimento baseado no padrão ISO Pascal requer extensões específicas de implementação para o desenvolvimento de aplicativos do mundo real nas plataformas de destino. O Pascal padrão é projetado para ser independente de plataforma, portanto, não prescreve acesso de baixo nível a recursos dependentes de hardware ou sistema operacional. Pascal padrão também não prescreve como um programa grande deve ser dividido em unidades de compilação separadas. A partir da versão 4, o Turbo Pascal adotou o conceito de unidades da UCSD Pascal . As unidades foram usadas como bibliotecas de funções externas, como os arquivos de objeto usados ​​em outras linguagens, como FORTRAN ou C.

Por exemplo, a linha uses crt;em um programa incluía a unidade chamada crt; o usesé o mecanismo para usar outras unidades de compilação. interfacee implementationeram as palavras-chave usadas para especificar, dentro da unidade, o que era (e o que não era) visível fora da unidade. Isso é semelhante às palavras public- privatechave e em outras linguagens, como C ++ e Java .

As unidades no Pascal da Borland eram semelhantes ao sistema de compilação separado do Modula-2 . Em 1987, quando o Turbo Pascal 4 foi lançado, o Modula-2 estava fazendo incursões como uma linguagem educacional que poderia substituir o Pascal. A Borland, na verdade, tinha um compilador Turbo Modula-2, mas só o lançou em CP / M (sua interface de usuário era quase idêntica à do Turbo Pascal 1–3) com pouco marketing. Uma versão DOS muito melhorada foi desenvolvida, mas como a Borland não estava disposta a publicar os resultados em si, os autores, incluindo Niels Jensen, compraram os direitos e formaram a Jensen & Partners International para publicá-lo como JPI TopSpeed ​​Modula-2. Em vez disso, a Borland optou por implementar uma compilação separada em seu produto Pascal estabelecido.

A compilação separada não fazia parte da linguagem Pascal padrão, mas já estava disponível em UCSD Pascal , que era muito popular em máquinas de 8 bits. A sintaxe Turbo Pascal para unidades parece ter sido emprestada do UCSD Pascal. Versões anteriores do Turbo Pascal, projetadas para computadores com recursos limitados, suportavam um sistema de "encadear e executar" de vinculação dinâmica para objetos compilados separadamente, semelhante ao sistema amplamente usado em BASIC. Além disso, a linguagem tinha uma instrução para incluir código-fonte separado em um programa quando necessário, e a sobreposição era compatível com o TP3, mas, como acontece com as sobreposições, os objetos encadeados tinham que caber no espaço de memória do programa original (limitado). À medida que as instalações de computação e armazenamento avançavam, a capacidade de gerar grandes arquivos EXE foi adicionada ao Turbo Pascal, com a capacidade de vincular estaticamente e carregar coletivamente objetos compilados separadamente.

Os arquivos .TPU gerados pela compilação de uma unidade Turbo Pascal são fortemente vinculados às estruturas internas do compilador, em vez de arquivos padrão .OBJ vinculáveis. Isso melhorou os tempos de compilação e vinculação, mas significava que os arquivos .TPU não podiam ser vinculados à saída de outras linguagens ou mesmo usados ​​com diferentes versões do Turbo Pascal, a menos que recompilados a partir do código-fonte.

Programação orientada a objetos

A partir da versão 5.5, alguns recursos de programação orientada a objetos foram introduzidos: classes, herança, construtores e destruidores. O IDE já foi ampliado com uma interface de navegador de objetos mostrando relações entre objetos e métodos e permitindo aos programadores navegar facilmente pelos módulos. A Borland chamou sua linguagem de Object Pascal , que foi amplamente estendida para se tornar a linguagem subjacente ao Delphi (que tem dois sistemas OOP separados). O nome "Object Pascal" se originou com as extensões Pascal desenvolvidas pela Apple Inc. para programar seus computadores Lisa e Macintosh . O criador do Pascal, Niklaus Wirth, prestou consultoria no desenvolvimento dessas extensões, que se basearam no tipo de registro já presente no Pascal.

Problema com unidade CRT em processadores rápidos

Várias versões do Turbo Pascal, incluindo a última versão 7, incluem uma unidade CRT usada por muitos aplicativos de modo de texto em tela cheia. Esta unidade contém código em sua seção de inicialização para determinar a velocidade da CPU e calibrar os loops de atraso. Este código falha em processadores com uma velocidade superior a cerca de 200  MHz e aborta imediatamente com uma mensagem "Erro de tempo de execução 200". (o código de erro 200 não tem nada a ver com a velocidade da CPU de 200 MHz). Isso ocorre porque um loop é executado para contar o número de vezes que ele pode iterar em um tempo fixo, conforme medido pelo relógio em tempo real . Quando o Turbo Pascal foi desenvolvido, ele rodava em máquinas com CPUs rodando de 1 a 8 MHz, e pouco se pensou na possibilidade de velocidades muito mais altas, então a partir de cerca de 200 MHz iterações suficientes podem ser executadas para estourar o contador de 16 bits. Um patch foi produzido quando as máquinas se tornaram muito rápidas para o método original, mas falhou quando a velocidade do processador aumentou ainda mais e foi substituída por outros.

Os programas sujeitos a este erro podem ser recompilados a partir do código-fonte com um compilador corrigido para eliminar o erro (usando um TURBO.TPL próprio compilado com uma unidade CRT corrigida) ou, se o código-fonte não estiver disponível, os executáveis ​​podem ser corrigidos por uma ferramenta chamada TPPATCH ou equivalente, ou carregando um programa Terminate and Stay Resident carregado antes de executar o programa defeituoso.

Existem também patches para o próprio compilador TP7, portanto, se o código-fonte Pascal estiver disponível, o código de uma nova compilação funcionará sem que o código compilado precise ser corrigido. Se o código-fonte estiver disponível, a portabilidade para bibliotecas sem dependência da velocidade do clock da CPU também é uma solução.

Ponto flutuante

Havia vários tipos de ponto flutuante , incluindo single(a representação de 4 bytes [IEEE 754]) double(a representação de 8 bytes IEEE 754), extended(uma representação de 10 bytes IEEE 754 usada principalmente internamente por coprocessadores numéricos ) e Real(uma representação de 6 bytes representação).

Nos primeiros dias, Realera o mais popular. A maioria dos PCs da época não tinha um coprocessador de ponto flutuante, então todo o FP tinha que ser feito em software. Os algoritmos FP da Borland ativados Realeram mais rápidos do que usar os outros tipos, embora sua biblioteca também emulasse os outros tipos no software.

Sintaxe

  • Pascal não faz distinção entre maiúsculas e minúsculas .
  • Historicamente, os comentários Pascal são incluídos { within pairs of braces }, ou (* left parenthesis/asterisk and asterisk/right parenthesis pairs *), e podem abranger qualquer número de linhas. Versões posteriores do Borland Pascal também suportavam comentários no estilo C ++ // preceded by two forward slashes , que terminam no final da linha.
  • A sintaxe da instrução caseé mais flexível do que o Pascal padrão.
  • Os conjuntos podem ter até 256 (2 8 ) membros.
  • O Pascal padrão Stringprecedido por um byte de comprimento é compatível e ocupa uma quantidade fixa de armazenamento; versões posteriores adicionaram um tipo de terminação nula mais flexível, chamando o tipo mais antigo de "string curta". O código-fonte mais antigo que lida com strings de maneiras não padronizadas (por exemplo, manipulando diretamente o byte de comprimento como S[0]:=14para truncar uma string) deve ter suas strings declaradas como strings curtas ou ser reescrito.

Este é o programa clássico Hello world em Turbo Pascal:

program HelloWorld;
begin
  WriteLn('Hello World')
end.

Isso pede um nome e o grava de volta na tela cem vezes:

program WriteName;
var
  i    : Integer;        {variable to be used for looping}
  Name : String;         {declares the variable Name as a string}
begin
  Write('Please tell me your name: ');
  ReadLn(Name);          {ReadLn returns the string entered by the user}
  for i := 1 to 100 do
  begin
    WriteLn('Hello ', Name)
  end;
 readln;
end.

Veja também

Referências

links externos