Mesa (linguagem de programação)

Mesa[1]
Surgido em julho de 1981; há 43 anos
Última versão Mesa 6.0 (Version 41) (julho de 1981; há 43 anos)
Criado por Computer Systems Laboratory (CSL)
Estilo de tipagem
  • estática
  • forte
Influenciada por ALGOL
Influenciou Java, Modula-2, Cedar, PostScript[2]

Mesa[1] é uma linguagem de programação desenvolvida no meio da década de 1970 no Xerox Palo Alto Research Center em Palo Alto, California, United States. O nome da linguagem foi baseado num trocadilho com as catchphrases de linguagens de programação da época, porque Mesa (um tipo de acidente geográfico onde um planalto é isolado) é uma linguagem de "alto nível".

Mesa é uma linguagem tipo ALGOL com suporte forte a modularidade. Cada modulo de biblioteca tem pelo menos dois arquivos de código fonte: um arquivo de definições especificando a interface da biblioteca além um ou mais arquivos de programa especificando a implementação das procedures na interface.[3] Para usar a biblioteca, um programa ou biblioteca de mais alto nível precisa "importar" as definições. O compilador Mesa type-checks todos os usos das entidades importadas, essa combinação separa a compilação com type-checking era incomum na época.[carece de fontes?]

Mesa introduz várias outras inovações em design de linguagens e implementação, notavelmente no tratamento de exceções, sincronização de threads e compilação incremental.

Mesa foi desenvolvida no Xerox Alto, um dos primeiros computadores pessoais com uma interface gráfica do usuário, porem, a maior parte do software de sistemas do Ato foram escritos em BCPL. Mesa foi a linguagem de programação de sistema da workstation Xerox Star mais tarde, e a para o ambiente de desktop GlobalWiew. O Xerox PARC mais tarde desenvolveu a linguagem Cedar, que foi um superset da Mesa.

Mesa e Cedar tiveram uma grande influencia no desing de outras linguagens importantes, como Modula-2 e Java, e foram um importante veículo para o desenvolvimento e disseminação dos fundamentos de GUIs, ambientes em redes, e outros avanços a Xerox contribuiu para o campo da ciência da computação.

Mesa foi originalmente projetada no Computer Systems Laboratory (CLS), um ramo do Xerox Palo Alto Research Center, para o Alto, uma estação de trabalho experimental que usava microcode. Inicialmente, ela estava restrita ao PARC e a algumas poucas universidades para as quais a Xerox doou alguns Altos.

Mesa mais tarde foi adotada como linguagem de programação de sistemas para as estações de trabalho da Xerox como o Xerox 8010 (Xerox Star, Dandelion) e o Xerox 6085 (Daybreak), e particular para o sistema operacional Pilot.

Um ambiente de desenvolvimento secundário, chamado Xerox Development Environment (XDE) permitia a desenvolvedores debugar ambos o sistema operacional Pilot assim como aplicações GUI ViewPoint usando um mecanismo de "world swap". Isso permitia que do o "estado" do mundo a ser substituído, e permitir que crashes de sistema de baixo nível que paralisariam o sistema fossem debugados. Essa técnica não escalou muito bem para imagens de aplicações maiores (vários megabytes), e então o Pilot/Mesa world mais tarde foi movido do doe "world swap view" quando as maquinas microcodadas foram substituídas gradualmente em favor das estações de trabalho SPARC e PCs Intel rodando um emulador Mesa PrincOps para o conjunto de instruções básico.

Mesa era compilada em uma linguagem de pilha de maquina, supostamente com a maior densidade de código já atingida (crudemente, 4 bytes por declaração da linguagem de alto nível). Isso foi alardeado em num paper de 1981 onde os implementadores do Xerox System Development Departament (então, o braço de desenvolvimento do PARC), ajustaram o conjunto de instruções e publicaram um paper sobre a densidade de código resultante.[4]

Mesa foi ensinada através do Mesa Programning Course que levou pessoas de um grande conjunto de tecnologias Xerox tinha disponível no momento e terminava com programadores escrevendo um "hack", um programa funcional projetada para ser útil. Um exemplo de tais hack é o BWSMagnifier, que foi escrito em 1988 e permitia a pessoas ampliarem seções da tela da estação de trabalho ao definir uma janela redimensionável e um fator de amplificação. Programadores da Xerox trinados em Mesa eram bem versados nos fundamentos de GUIs, redes, exceções e programação multi thread, quase uma década antes delas se tornarem ferramentas padrão do ofício.

Dentro da Xerox, Mesa foi eventualmente suplantada pela linguagem de programação Cedar. Muitos programadores Mesa e desenvolvedores deixaram a Xerox em 1985, alguns deles foram para o DEC System Research Center onde usaram a experiência com Mesa no design de Modula-2+, e mais tarde Modula-3.

Referências

  1. a b Mitchell, James G.; Maybury, William; Sweet, Richard (1979): Mesa Language Manual - version 5.0" XEROX PARC, Computer Systems Laboratory (CSL), Technical Report CSL-79-3. Online copy at www.bitsavers.org, accessed on 2019-05-15.
  2. Perry, T.S. (maio de 1988). «'PostScript' prints anything: a case history». IEEE Spectrum. 25 (5): 42–46. doi:10.1109/6.4550 
  3. Mesa Language Manual, chapter 7. (The Manual uses the term module to mean a source file.)
  4. Sweet, Richard; Sandman, James (março de 1982), «Empirical analysis of the mesa instruction set», Proceedings of the first international symposium on Architectural support for programming languages and operating systems - ASPLOS-I, ISBN 0897910664, pp. 158–166, doi:10.1145/800050.801839Acessível livremente