MATH-MATIC

linguagem de programação

MATH-MATIC é o nome de marketing para o compilador AT-3 (Algebraic Translator 3), uma linguagem de programação antiga para o UNIVAC I e o UNIVAC II.

MATH-MATIC
Paradigma imperativa
Surgido em 1957
Criado por Remington Rand
Influenciada por FLOW-MATIC
Influenciou UNICODE (linguagem de programação)
Plataforma UNIVAC I, UNIVAC II

MATH-MATIC foi escrita começando por volta de 1955 por uma equipa liderada por Charles Katz sob a direção da Grace Hopper. Um manual preliminar[1] foi produzido em 1957 e um manual em sua versão final[2] no ano seguinte.

Sintaticamente, MATH-MATIC era semelhante à linguagem orientada a negócios contemporânea da Univac, FLOW-MATIC, diferindo no fornecimento de expressões de estilo algébrico e aritmética de ponto flutuante, e arrays em vez de estruturas de registro.

Características notáveis editar

As expressões em MATH-MATIC poderiam conter expoentes numéricos, incluindo decimais e frações, por meio de uma máquina de escrever personalizada.[3]

Os programas em MATH-MATIC poderiam incluir seções de inline assembler de código ARITH-MATIC e código de máquina do UNIVAC.[3]

O UNIVAC I tinha somente 1000 palavras de memória, e o sucessor UNIVAC II tão pouco quanto 2000. O MATH-MATIC permitia programas maiores, gerando automaticamente o código para ler segmentos de sobreposição de fitas UNISERVO como requerido. O computador tentava evitar loops divididos entre os segmentos.[4]

Influência editar

Ao propor a colaboração com a ACM que levou ao ALGOL 58, o Gesellschaft für Angewandte Mathematik und Mechanik escreveu que considerava a MATH-MATIC a linguagem mais próxima disponível da sua própria proposta.[5]

Em contraste com o FORTRAN de Backus a MATH-MATIC não enfatiza a velocidade de execução dos programas compilados. As máquinas UNIVAC não tem hardware para ponto flutuante, e a MATH-MATIC foi traduzida via código pseudo-assembler da A-3 (ARITH-MATIC) ao invés de diretamente para código de máquina da UNIVAC, limitando sua utilidade.[6]

Programa simples em MATH-MATIC editar

Um programa simples em MATH-MATIC program:[7]

(2)  TYPE-IN ALPHA .
(2A) READ A B C SERVO 4 STORAGE A IF SENTINEL JUMP TO SENTENCE 8 .
(3)  READ D F SERVO 5 .
(4)  VARY Y 1 (0.1) 3 SENTENCE 5 THRU 6 .
(5)  X1 = (7*103*Y*A*SIN ALPHA)3 / (B POW D+C POW E) .
(6)  WRITE AND EDIT A Y D E X1 SERVO 6 .
(7)  JUMP TO SENTENCE 2A .
(8)  CLOSE-INPUT AND REWIND SENTENCE 3 .
(9)  CLOSE-OUTPUT SENTENCE 6 .
(10) READ F G H N SERVO 4 STORAGE A IF SENTINEL JUMP TO SENTENCE 20 .
(11) EXECUTE SENTENCE 3 .
(12) X2 = (3 ROOT (E-G)+LOG (D+N)) / (F2.6*EXP H) .
(13) WRITE EDIT F D F X2 SERVO 6 .
(16) JUMP TO SENTENCE 10 .
(20) STOP .

Referências

  1. Ash, R.; Broadwin E.; Della Valle, V.; Greene M.; Jenny, A.; Katz, C.; Yu, L. (19 de abril de 1957). Preliminary Manual for MATH-MATIC and ARITH-MATIC Systems for ALGEBRAIC TRANSLATION and COMPILATION for UNIVAC I and II (PDF). Philadelphia: Remington Rand Univac. Consultado em 21 de setembro de 2016 
  2. Univac MATH-MATIC Programming System (PDF). [S.l.]: Remington Rand Univac. 1958. Consultado em 21 de setembro de 2016 
  3. a b Sammet, Jean (1969). Programming Languages: History and Fundamentals. [S.l.]: Prentice-Hall. p. 132,135-137. ISBN 978-0-13-729988-1 
  4. Sammet (1969) p. 137
  5. Bemer, Robert W. (1969). «A Politico-Social History of Algol (With a Chronology in the Form of a Log Book)» (PDF). Consultado em 22 de setembro de 2016 
  6. Knuth, Donald; Pardo, Luis Trabb (Agosto de 1976). The Early Development of Programming Languages. [S.l.]: Computer Science Department, School of Humanities and Sciences, Stanford University. p. 90. Consultado em 23 de setembro de 2016 
  7. Univac (1958) p. 8