Turbo Pascal Forever – Start your engines.

Após uma bela sequência de posts sobre jogos e afins, volto a escrever sobre o que eu gosto de fazer que é programar coisas 🙂 e principalmente para enfim dar continuidade a minha primeira série sobre programação para micros clássicos, que é o curso de Turbo Pascal 3.0, iniciado nesse post aqui, que por sua vez foi e é muito conhecido e utilizado em computadores baseados e/ou compatíveis com o sistema operacional CP/M, isso inclui o MSX e talvez seja linguagem mais utilizada nessa arquitetura, depois do MSX-BASIC.

Bom, primeiramente vamos responder às perguntas deixadas no ultimo post, que reproduzo a seguir.

PERGUNTA 1 (utilizem a área de comentários do post para responder)

Qual o nome do arquiteto que deixou a Borland para na Microsoft criar uma das linguagens mais conhecidas da empresa na atualidade ?

Resposta: Anders Hejlsberg, que foi um dos principais arquitetos da Borland International desde a época do Turbo Pascal, sendo também o homem forte do Delphi até aproximadamente 1996 (versão 3.0), depois disso a Microsoft fez uma grande investida nos principais nomes da equipe de compiladores da Borland, levando-os para Redmond onde  posteriormente trabalharam, sob a tutela de Anders, no projeto do Framework, cópia da arquitetura Java, conhecido como Microsoft .Net, incluindo a linguagem C# que é a mais conhecida nessa plataforma. Na verdade Anders Hejlsberg criou um compilador Pascal em sua empresa, situada na Dinamarca e conhecida como Poly Data, tendo a Borland licenciado o núcleo de sua implementação da linguagem Pascal, posteriormente adicionando um editor integrado, criando assim o Turbo Pascal. Não só isso, antes de vender o seu Pascal (PolyPascal) para a Borland, Anders era representante da Microsoft na Dinamarca, o que o colocava em desacordo com a Borland. Posteriormente a Borland adquiriu 100% dos direitos do compilador e contratou Anders como um dos principais arquitetos do Turbo Pascal (Fonte: Anders Hejlsberg Wikipedia e Antique Software: Turbo Pascal 1.0 – Embarcadero).

PERGUNTA 2(utilizem a área de comentários do post para responder)

Que grande empresa, reconhecida pelos seus gadgets e PC‘s, desenvolveu a extensão de Pascal, denominada Object Pascal ?

Resposta: Apple Inc. Muita gente sabe da fixação da Apple em ser incompatível e tentar amarrar seus produtos tornando-os uma caixa preta incomunicável com outras plataformas, pois bem, não é de hoje que a Apple opta por tecnologias não mainstream, como é o Objective-C que é a tecnologia base  de desenvolvimento para os principais produtos da empresa, como IPod, IPad, IPhone e MacOSX. No passado a mesma Apple optou por manter a base de software de seu MacOS, toda escrita em Pascal, em um momento em que a linguagem C se tornava o mainstream como tecnologia de base para sistemas operacionais, uma vez que a maioria dos sistemas existentes optavam pela linguagem de Dennis Ritchie, principalmente pelas obvias características de portabilidade, poder de abstração, facilidade de interfacear alto nível com baixo nível e principalmente velocidade.

Apple I - Detalhe do "incompatible" no quadro ao fundo. Desde aquela época já era assim. :)
Apple I – Detalhe do “incompatible” no quadro ao fundo…….desde aquela época já era assim. 🙂

Pois bem, a empresa de Steve Jobs basicamente desenvolveu a extensão do Pascal orientado a objetos, conhecida como Object Pascal, sob a tutela de Niklaus Wirth, e que mais tarde serviria como base para versões futuras do Turbo Pascal 5.5 da Borland até as versões atuais do Delphi.

Integrated Development Editor (aka IDE)

O Turbo Pascal 1.0 foi reconhecidamente o primeiro compilador a integrar um ambiente de desenvolvimento (IDE), juntamente com o mais rápido compilador (1 passo) da época e com isso se tornou um sucesso absoluto no meio comercial e principalmente no meio acadêmico, sendo utilizado até os dias de hoje em diversas instituições de ensino, através de compiladores modernos e compatíveis como o FreePascal.

A IDE das primeiras 3 versões do Turbo Pascal, apesar de simples e até arcaica para os padrões atuais, representou um grande avanço no meio de desenvolvimento de software, principalmente por combinar um poderoso editor de textos, compatível em comandos com o “padrão” dominante na época, o “padrão” WordStar, e que se perpetuou para a maioria dos processadores, editores de textos e IDE‘s, até os dias de hoje.

É sobre esses comandos do editor e também sobre as opções do menu do Turbo Pascal que descrevo abaixo.

Tela de abertura do Turbo Pascal 1.0. Foi assim até a versão 3.0

A imagem acima demonstra a tela de menu das primeiras versões do Turbo Pascal onde o usuário tem a possibilidade de, através dos caracteres que estão em maiúsculo (também colorido na versão x86, ou PC), selecionar as opções desejadas no ambiente integrado.

Segue abaixo a descrição das opções do menu principal e a medida em que avançarmos no curso, vou descrevendo as outras opções dos sub-menus de alguns desses itens.

  • Logged drive – Mostra e possibilita a alteração do drive corrente. Ao se teclar L, aparecerá uma nova mensagem “New drive“, solicitando a nova unidade que será a corrente.
  • Work file – No Turbo Pascal existe o conceito de Arquivo Principal (Main file) e Arquivo de Trabalho (Work file). De fato o arquivo de trabalho é o principal, pois quando não é especificado um arquivo principal, o Arquivo de trabalho é assumido como o mesmo. Era uma forma arcaica de se trabalhar com 2 arquivos simultâneamente, de forma que o principal só é carregado no momento da compilação e o Work file no momento da edição. Isso é ótimo quando se está trabalhando no desenvolvimento de arquivos de include (que veremos mais a frente) e se deseja compilar e executar com um outro arquivo principal e que utiliza esse include.
  • Main file – Vide opção acima.
  • Edit – Entra no editor de programas do Turbo Pascal, carregando o Work file, ou Main file que estiver especificado.
  • Compile – Compila o programa para a memória, disco (.COM) ou para o formato Chain (.CHN), de acordo com a seleção feita na opção compiler Options, descrita mais abaixo. Quando compilado em disco, o Turbo Pascal gera um executável compatível com o MSXDOS e CP/M, no formato .COM, podendo ser executado nesses sistemas operacionais. Até a versão 3.0 do Turbo Pascal, existia a possibilidade de que algumas sub-rotinas estivessem em outros arquivos executáveis especialmente gerenciados pelo runtime do Turbo Pascal, que são os arquivos Chain (corrente), em um formato especifico do Turbo Pascal, com a extensão .CHN. Podemos traçar um paralelo desses arquivos .CHN com as técnicas modernas de Dynamic loading possíveis através dos Shared Objects ou Dynamic Load Libraries presentes nos sistemas operacionais modernos, como UNIX (Linux, Solaris, …), através dos módulos .so e no Windows através das famosas .dll‘s, entretanto no Turbo Pascal há muitas limitações do uso de arquivos .CHN.
  • Run – Compila e executa um programa, de acordo com a seleção feita na opção compiler Options.
  • Save – Salva um Work file ou Main file, carregado no editor.
  • Dir – Mostra o conteúdo do drive e diretório corrente.
  • Quit – Sai do Turbo Pascal.
  • compiler Options – Possibilita a alteração do modo de compilação, podendo ser compilação em memória, arquivo .COM, ou .CHN. Existe também a opção de configuração para depuração de erros de runtime.

Comandos básicos do editor.

Ao contrário dos dias atuais onde tudo se resolve com um clique do mouse ou até mesmo com um toque dos dedos, nos primeiros dias da micro-informática nem tudo era repleto de menus com fácil acesso e principalmente com padronizações bem definidas quanto aos atalhos comuns entre os softwares, coisa que hoje é definida grande parte pelo próprio sistema operacional hospedeiro. No Turbo Pascal 3.0 não é diferente, até mesmo porque é um software de 1983, onde estávamos bem longe de tal padronização. Entretanto existiam alguns “padrões” de mercado, na época e que, principalmente, eram ditados pelos softwares que estavam “bombando” naquele momento.

No caso do Turbo Pascal, um outro software que influenciou muito na interface de edição dos programas, foi o WordStar, que foi o primeiro processador de textos de grande sucesso do mundo, na época. Como a grande maioria dos usuários já estavam habituados aos padrões de comandos de edição do WordStar, todo software similar daquela época procurava imitar o líder de mercado, comportamento esse que é seguido até hoje em todos os softwares atuais.

Tela principal do WordStar
Tela principal do WordStar

Apenas para deixar registrado visualmente, abaixo podemos observar o conceito de WYSIWYG da época, sob o ponto de vista do software líder de mercado, o WordStar.

WordStar e os primórdios do WYSIWYG
WordStar e os primórdios do WYSIWYG

Não vou descrever todos os comandos e atalhos do editor do Turbo Pascal mas os principais e mais importantes com certeza estarão aqui. Os atalhos sempre eram ativados no Turbo Pascal com a combinação CTRL+K, seguida de outra tecla que especificava o comando a ser executado. Segue abaixo a lista dos principais:

  • CTRL+K D – Essa combinação de teclas quando digitada de dentro do editor, faz com que o menu principal seja ativado. Geralmente quando você está editando um fonte e na sequência deseja iniciar a compilação do mesmo, primeiro deverá sair do editor e retornar ao menu principal, uma vez que nessa versão do Turbo Pascal não tinhamos ainda o conceito de menus DropDown.
  • CTRL+K B – Combinação de teclas que especifica a marcação de um inicio de bloco a ser copiado para o Clipboard, ou área de transferência, como conhecemos em português.
  • CTRL+K K – Combinação de teclas que especifica a marcação do fim de um bloco a ser copiado para o Clipboard, ou área de transferência. É similar a marcação de texto feito pelo mouse em sistemas de processamento de textos atuais.
  • CTRL+K C – Copia um texto previamente marcado através da combinação anterior CTRL+K B/CTRL+K K, para a posição corrente do cursor.
  • CTRL+K V – Move um texto previamente marcado através da combinação anterior CTRL+K B/CTRL+K K, para a posição corrente do cursor.
  • CTRL+K W – Grava para arquivo, o texto previamente marcado através da combinação anterior CTRL+K B/CTRL+K K. Ao executar essa combinação, aparecerá, no topo da tela do editor, a mensagem “Write block to file:“, solicitando o nome do arquivo a ser gravado.
  • CTRL+K R – Carrega, na posição corrente do cursor, o texto gravado em um arquivo do disco. Ao executar essa combinação, aparecerá, no topo da tela do editor, a mensagem “Read block from file:“, solicitando o nome do arquivo a ser carregado.

.

A hora do código.

Bom, chega de enrolar e vamos colocar a mão na massa, passando primeiramente pelos conceitos mais básicos da linguagem, então nesse post vamos nos concentrar apenas na estrutura básica de um programa Pascal e a partir do próximo post, sim, vamos entrar nos detalhes mais avançados da linguagem, incluindo sua integração com recursos específicos de nossa plataforma preferida, o MSX :).

Lembrando que o intuito desse curso não é ensinar estrutura de dados e técnicas de programação, portanto irei considerar isso um pré-requisito.

Vamos conhecer a estrutura básica de um programa em Pascal.

Program Hello_World;
(*
  ********************************************************
  * Área de variáveis globais;
  * Definição de constantes;
  * Definição de novos tipos de dados (user defined types);
  * Definição de registros (estruturas de dados);
  * Definição de funções do usuário;
  * Definição de procedimentos do usuário;
  ********************************************************
*)
Begin  { Entry point principal do programa ou método principal }
  (* Área de código do programa principal *)
  WriteLn( 'Hello World' );
End.

Vamos começar do inicio :). Primeiramente o que o novo programador de Pascal precisa saber é que a linguagem não é case-sensitive, ou seja, comandos, variáveis, constantes, novos tipos ou registros, se definidos diferenciando-se apenas os caracteres entre maiúsculos e minúsculos, não serão distintos para o compilador Pascal. Ex: PROGRAM, Program, PrOgRaM, para o compilador Pascal é considerado a mesma palavra.

Sabendo isso vamos começar analisando a primeira linha de nosso programa exemplo, começando pela palavra reservada Program nome_programa, que especifica o nome do programa em questão, mas tem efeito apenas cosmético, sendo mais utilizado para identificar o programa principal, por isso, caso o programador não queira utilizar não é empecilho para se escrever um programa em Pascal. Caso se utilize um nome de programa não se esqueça de que o nome não pode ter espaços.

Logo abaixo temos um comentário de múltiplas linhas que se inicia com  (* e termina com *), podendo também ser definido um comentário de múltiplas linhas através de { terminando com }. Infelizmente até a primeira versão do Delphi, não tivemos no Pascal da Borland nenhum equivalente aos comentários de linha única, como o //.

(*
  ********************************************************
  * Área de variáveis globais;
  * Deinição de constantes;
  * Definição de novos tipos de dados (user defined types);
  * Definição de registros (estruturas de dados);
  * Definição de funções do usuário;
  * Definição de procedimentos do usuário;
  ********************************************************
*)

Podemos, e vamos, utilizar no futuro a área onde está o comentário acima justamente da forma descrita no próprio comentário no código, ou seja, área de variáveis globais, constantes, definições de novos tipos e estruturas, funções e procedimentos definidos pelo usuário, que veremos a partir do próximo post.

Por último temos o bloco do programa principal, main entry-point ou função principal para quem gosta de C/C++.

Como Pascal é uma linguagem estruturada onde cada função tem seu próprio escopo de código e dados, para se definir o início desse escopo, utilizamos a palavra reservada Begin, finalizando-o através da palavra End.

Lembrando que em Pascal o separador de comandos é sempre o ; (ponto e virgula) mas no caso do bloco principal a palavra End sempre terminará com . (ponto), então o seu programa principal sempre será conforme a estrutura abaixo.

Begin  { Inicio  do bloco do programa principal }
  (* Seu programa entra aqui *)
End.   { Término do bloco principal }

Por último vou falar, resumidamente, do statement WriteLn, que é utilizado como rotina de saída (output) para os dispositivos suportados pelo Turbo Pascal e nesse caso específico é utilizado para exibir um conjunto de caracteres (string) na saída padrão do computador, que é a tela do console, então o nosso programa de exemplo….

Begin
  WriteLn( 'Hello World' );
End.

…deverá gerar a seguinte saída…

.
Hello World
.

Não vou me aprofundar, por enquanto, sobre o statement WriteLn uma vez que nos próximos posts vou voltar a falar em profundidade sobre esse comando e também sobre as demais rotinas de I/O de Turbo Pascal.

Bom, vou ficar por aqui, entretanto você pode estar se perguntando o porque deu eu estar bem devagar nesse principio do curso e eu te respondo que eu conheço os meus visitantes assíduos e sei que muitos dos que estão esperando “ansiosamente” pelo curso de Pascal, seguido pelo de C, são não programadores, logo, terei que deixar essa fundação bem sólida. 😉 e apesar de eu já ter dito que não irei focar em estruturas de dados, nesse caso, vou manter algo mais light no inicio….mas a pauleira começa a partir do próximo post. 🙂

[]’s
PopolonY2k

Referência na internet

Turbo Pascal Forever – Introdução
http://www.popolony2k.com.br/?p=1058

CP/M operating system (Wikipedia)
http://en.wikipedia.org/wiki/CP/M

Anders Hejlsberg (Wikipedia)
http://en.wikipedia.org/wiki/Anders_Hejlsberg

Antique Software: Turbo Pascal 1.0 – Embarcadero
http://edn.embarcadero.com/article/20693

Java – Linguagem de programação (Wikipedia)
http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa%C3%A7%C3%A3o%29

Microsoft .Net (Wikipedia)
http://pt.wikipedia.org/wiki/Microsoft_.NET

C# (Wikipedia)
http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29

Conspiracy Theory: Microsoft’s .Net IS Borland’s Product
http://delphi.about.com/od/delphifornet/a/conspiracydnet.htm

Apple Inc. (Wikipedia)
http://en.wikipedia.org/wiki/Apple_Inc.

Objective-C (Wikipedia)
http://en.wikipedia.org/wiki/Objective-C

IPod (Wikipedia)
http://en.wikipedia.org/wiki/Ipod

IPad (Wikipedia)
http://en.wikipedia.org/wiki/Ipad

IPhone (Wikipedia)
http://en.wikipedia.org/wiki/Iphone

MacOS (Wikipedia)
http://en.wikipedia.org/wiki/Macos

MacOSX (Wikipedia)
http://en.wikipedia.org/wiki/Macosx

Linguagem C (Wikipedia)
http://en.wikipedia.org/wiki/C_language

Dennis Ritchie RIP++
http://www.popolony2k.com.br/?p=1204

Object Pascal (Wikipedia)
http://en.wikipedia.org/wiki/Object_Pascal

Embarcadero Delphi (Wikipédia)
http://en.wikipedia.org/wiki/Borland_Delphi

WordStar (Wikipedia)
http://en.wikipedia.org/wiki/WordStar

Dynamic loading (Wikipedia)
http://en.wikipedia.org/wiki/Dynamic_loading

FreePascal (Wikipedia)
http://en.wikipedia.org/wiki/Freepascal

Menu (Computing – Wikipedia)
http://en.wikipedia.org/wiki/Menu_%28computing%29

Clipboard (Wikipedia)
http://en.wikipedia.org/wiki/Clipboard_%28software%29

WYSIWYG (Wikipedia)
http://en.wikipedia.org/wiki/WYSIWYG

Case-sensitive (Wikipedia)
http://pt.wikipedia.org/wiki/Case_sensitive

Turbo Pascal Forever – Introdução

Bom, já passamos da metade do ano e fazendo um balanço de todas as ideias que me incentivaram na criação do blog, cheguei a conclusão de que tenho muito “cartucho” ainda para gastar e um desses cartuchos é exatamente a criação de, no mínimo, dois cursos de programação na forma de série de artigos que serão publicados no site.

Então botei a mão na massa e corri atrás do feedback dos participantes do blog e também das opiniões dos participantes das principais listas de discussões relacionadas a MSX e computadores antigos em geral e o resultado final foram 2 séries sobre programação para o blog.

A primeira série, e que inicia nesse post, será dedicada a programação em Pascal (Turbo Pascal 3 para CP/M e MSX DOS) e a segunda (talvez para o ano que vem) dedicada a programação C, claro que o conteúdo desses cursos será voltado a plataformas embarcadas e a plataforma embarcada que escolhi é a MSX. 🙂

Como não poderia ser diferente vamos começar contando um pouquinho da ….

…História do Pascal – Primeiros dias.

A linguagem Pascal foi criada no ano de 1968 pelo cientista Niklaus Wirth e seu nome foi dado em homenagem ao francês, filósofo, matemático, escritor, inventor, etc e etc, Blaise Pascal.

Os principais motivadores para a criação de Pascal foram:

  1. Ter uma linguagem enxuta e eficiente;
  2. Incentivar boas práticas de programação com base em estruturas de dados e programação estruturada;
  3. Altamente didática, pois seu uso inicial visava o ensino de programação estruturada para estudantes;

.

Assim como diversas outras linguagens modernas, como C e ADA, Pascal foi fortemente baseada na linguagem ALGOL, por isso não é incomum encontrar literaturas que descrevem algoritmos completos escritos escritos em uma dessas linguagens, sendo C e Pascal as preferidas por muitos autores de livros de algoritmos e técnicas avançadas de programação, ou seja, Pascal é uma linguagem dirigida a verdadeiros programadores, ao contrário de linguagens como o BASIC em sua forma tradicional (ex: MSX-BASIC, Apple BASIC,…) que foram feitas para que não programadores pudessem criar programas de maneira rápida, porém estimulando hábitos de programação deficientes e código ilegível.

Por esses motivos, o BASIC evoluiu em direção ao Pascal nos ultimos anos, chegando a ter estruturas similares.

Segue abaixo alguns projetos escritos em Pascal:

  • p-System é um sistema operacional criado em Pascal, lá pelo final da década de 70 e me lembro de ter ouvido sobre esse sistema operacional quando o MS-DOS ainda tentava se estabelecer no mercado como mainstream.  A principal característica desse sistema era rodar código pseudo-compilado, atualmente conhecido como bytecodes, em tecnologias como Java e .Net.
  • Perix Operating System é um sistema operacional escrito em Turbo Pascal e Assembly. Seu autor mantém uma comunidade no Orkut e já conta com outros desenvolvedores experientes atuando no projeto. O autor do projeto é brazuca.
  • Skype – Reconhecido software de comunicação instantânea com capacidade de fazer chamadas telefônicas via internet, tem seu front-end para plataforma Windows, escrito em Delphi/Object Pascal.
  • Apple Lisa – Esse computador foi o precursor do Macintosh com o seu sistema operacional MacOS. O sistema operacional do Lisa foi escrito em Pascal.
  • MacOS – É o sistema operacional dos primeiros computadores Macintosh e assim como o Lisa, foi escrito também em Pascal, com partes em Assembly.

.

Turbo Pascal – O Pascal da época dos primeiros PC’s.

Programar em uma linguagem compilada era um pequeno parto na época dos primeiros PC‘s, sendo essa a realidade ainda hoje para plataformas embarcadas, uma vez que esse processo geralmente envolve vários passos até chegar ao binário compreensível pela máquina.

Esses processos são conhecidos como edição, compilação e linkagem e quando feitos em máquinas e compiladores modernos, o programador, hoje, nem precisa saber, e termina não sabendo, que os mesmos estão acontecendo, porém lá pelos anos 1970/80 era natural que todo desenvolvedor de software soubesse do que se tratava cada um desses passos, até mesmo porque ele interagia diretamente em cada um desses processos.

Sem contar que fazer esses passos nos computadores da época, era algo extremamente demorado pois os mesmos tinham recursos limitadíssimos, tanto de processamento quanto de armazenamento, o que tornava o processo lento em cada um dos passos, sendo que programas de apenas 8 KBytes poderiam levar em média de 3 a 5 minutos para a geração de executáveis.

Foi nesse cenário, com ferramentas de desenvolvimento tão arcaicas quanto escrever documentos em pedra, que nasceu uma das maiores obras de engenharia de software da época, e quem sabe de todos os tempos, e que praticamente obrigou os “grandes” players na época a elevar o nível de suas ferramentas, investindo pesado em seu desenvolvimento até chegar às ferramentas modernas existentes na atualidade………estou falando do Turbo Pascal da Borland Software Corporation.

Turbo Pascal 3.0 (Capa)

Parece exagero falar que o Turbo Pascal é uma das maiores obras de engenharia de software, mas se considerarmos que o Turbo Pascal se tratava da primeira ferramenta com Editor/Compilador integrado, capaz de compilar milhares de linhas de código em apenas poucos segundos e que todas as ferramentas da época demoravam vários minutos para fazer o mesmo, considerando máquinas com 64Kb ou menos de memória, com certeza se trata de uma grande obra de engenharia de software.

Tela de abertura do Turbo Pascal 1.0. Foi assim até a versão 3.0

A imagem acima foi retirada do site http://eugostododelphi.blogspot.com/

Na época a Microsoft Corporation, tentou revidar com o seu famigerado Microsoft Pascal,  seguido do seu não menos famigerado Microsoft Quick Pascal, porém suas ferramentas de desenvolvimento sempre estiveram atrás das construídas pela Borland, isso até o final da década de 90, quando a mesma passou a contratar engenheiros chave da equipe de desenvolvimento de compiladores da Borland, equiparando assim o cenário.

PERGUNTA 1 (utilizem a área de comentários do post para responder)

Qual o nome do arquiteto que deixou a Borland para na Microsoft criar uma das linguagens mais conhecidas da empresa na atualidade ?

Tamanha era a superioridade do Turbo Pascal frente a outros compiladores de outras linguagens que, rapidamente, as publicações da época davam foco a artigos que tratavam de Pascal, ou seja, juntamente com Assembly, Pascal se tornava mainstream no cenário de programação e na mídia, tudo isso graças a grande aceitação e popularidade do Turbo Pascal da Borland.

Depois disso a Borland cresceu e expandiu sua linha de produtos, implantando a tecnologia Turbo para um outros produtos, também consagrados, como o Turbo C/C++ e Turbo Assembler (TASM), bem como em outras menos consagradas como o Turbo Prolog.

O próprio Turbo Pascal evoluia de maneira gradativa, tanto que na versão 5.5, o mesmo passava a incorporar características de orientação a objetos (OOP), amplamente difundidas em linguagens mais modernas como Java e que no universo Pascal ficou conhecida como Object Pascal.

Tela de abertura do Turbo Pascal 5.5

PERGUNTA 2 (utilizem a área de comentários do post para responder)

Que grande empresa, reconhecida pelos seus gadgets e PC‘s, desenvolveu a extensão de Pascal, denominada Object Pascal ?

Com produtos de alta qualidade e performance, a Borland dominou o mercado para desenvolvedores de software na era MS-DOS, sendo que outras produtoras como a Microsoft, Symantec, Sybase, sequer chegavam perto em qualidade, com sua linha de produtos similares.

Com a popularização dos sistemas operacionais gráficos, principalmente graças ao  Windows 3.11, o conceito de usabilidade de software mudou radicalmente, entretanto as ferramentas de desenvolvimento de software permaneceram por um tempo com as mesmas características da época do MS-DOS,  como o Visual C++ e o Turbo C++ for Windows e Turbo Pascal For Windows.

Mas com toda a riqueza e principalmente complexidade que esses ambientes operacionais gráficos traziam ao mundo dos PC’s, na época, era inevitável que uma mudança radical na área de ferramentas para desenvolvimento de software estava para acontecer, principalmente para que os desenvolvedores aproveitassem ao máximo toda a potencialidade que esse novo mundo gráfico proporcionava e principalmente para auxiliar no desenvolvimento de produtos com mais qualidade e principalmente reduzindo o tempo de desenvolvimento de sistemas.

Foi nesse cenário que a Borland proporcionou ao mundo outra grande inovação, tão impactante quanto a apresentação da primeira versão do Turbo Pascal, trata-se do lançamento da ferramenta RAD (Rapid Application Development) denominada Delphi, que tinha como base toda infra estrutura da linguagem Pascal/Object Pascal, já conhecida e amplamente utilizada por diversos desenvolvedores ao redor do mundo.

Borland Delphi Logo

O tempo passou, as tecnologias evoluiram, hoje a linguagem Turbo Pascal, através do Delphi, já não pertence mais à Borland Software Corporation e sim da empresa de desenvolvimento de ferramentas de banco de dados Embarcadero Technologies, porém a estrutura da linguagem permanece, até os dias atuais, quase que da mesma forma que nas primeiras versões do Pascal Clássico bem como o Turbo Pascal 1.0, confirmando a visão de longo prazo de seu criador, Niklaus Wirth, ao desenvolver uma linguagem didática, estruturada, moderna, poderosa e principalmente extensível, muito a frente de seu tempo.

Bom, chegamos ao fim desse primeiro post, trazendo um pouco da história e importancia do Turbo Pascal no mundo da tecnologia de software, desde os primórdios até os dias atuais.

Até o próximo artigo.

[]’s
PopolonY2k

Referência Bibliográfica

Turbo Pascal 6 Competo e Total – Stephen O’Brien – McGrawHill

Referência  na internet

Pascal language (Wikipedia)
http://pt.wikipedia.org/wiki/Pascal_%28linguagem_de_programa%C3%A7%C3%A3o%29

Object Pascal (Wikipedia)
http://en.wikipedia.org/wiki/Object_Pascal

Turbo Pascal Compiler (Wikipedia)
http://pt.wikipedia.org/wiki/Turbo_Pascal

Turbo Assembler – TASM (Wikipedia)
http://en.wikipedia.org/wiki/Turbo_Assembler

Turbo Prolog (Wikipedia)
http://en.wikipedia.org/wiki/Visual_Prolog

Turbo C/C++ (Wikipedia)
http://en.wikipedia.org/wiki/Turbo_C%2B%2B

Delphi (Wikipedia)
http://en.wikipedia.org/wiki/Borland_Delphi

Microsoft Pascal (Wikipedia)
http://en.wikipedia.org/wiki/Microsoft_Pascal

Java Programming language (Wikipedia)
http://en.wikipedia.org/wiki/Java_%28programming_language%29

.Net (Wikipedia)
http://en.wikipedia.org/wiki/.NET_Framework

Borland Software Corporation
http://en.wikipedia.org/wiki/Borland

Microsoft Corporation (Wikipedia)
http://en.wikipedia.org/wiki/Microsoft_Corporation

Embarcadero Technologies
http://www.embarcadero.com

Blaise Pascal (Wikipedia)
http://en.wikipedia.org/wiki/Blaise_Pascal

Niklaus Wirth (Wikipedia)
http://en.wikipedia.org/wiki/Niklaus_Wirth

BASIC (Wikipedia)
http://en.wikipedia.org/wiki/BASIC

Apple BASIC (Wikipedia)
http://en.wikipedia.org/wiki/Apple_BASIC

MSX-BASIC
http://en.wikipedia.org/wiki/MSX_BASIC

Assembly language (Wikipedia)
http://en.wikipedia.org/wiki/Assembly_language

CP/M Operating System (Wikipedia)
http://en.wikipedia.org/wiki/CP/M

MSX-DOS Operating System
http://en.wikipedia.org/wiki/MSX-DOS

MS-DOS (Wikipedia)
http://en.wikipedia.org/wiki/MS-DOS

MS-Windows (Wikipedia)
http://en.wikipedia.org/wiki/Windows

Embedded systems
http://en.wikipedia.org/wiki/Embedded_system

Ada Programming language (Wikipedia)
http://en.wikipedia.org/wiki/Ada_%28programming_language%29

C Programming language (Wikipedia)
http://en.wikipedia.org/wiki/C_%28programming_language%29

ALGOL Programming language (Wikipedia)
http://en.wikipedia.org/wiki/ALGOL

Compiladores (Wikipedia)
http://en.wikipedia.org/wiki/Compiler

Linkagem (Wikipedia)
http://en.wikipedia.org/wiki/Linkage_%28software%29

Object-oriented Programming – OOP (Wikipedia)
http://en.wikipedia.org/wiki/Object-oriented_programming

Rapid Application Development – RAD (Wikipedia)
http://en.wikipedia.org/wiki/Rapid_application_development

Perix (Sourceforge.net)
http://sourceforge.net/projects/perix/

Skype
http://www.skype.com/intl/pt/home/

Apple Lisa (Wikipedia)
http://en.wikipedia.org/wiki/Apple_Lisa

Apple Macintosh (Wikipedia)
http://en.wikipedia.org/wiki/Apple_Macintosh

MacOS (Wikipedia)
http://en.wikipedia.org/wiki/Mac_OS