MATH-MATIC
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
editarAs 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
editarAo 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
editarUm 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
- ↑ 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
- ↑ Univac MATH-MATIC Programming System (PDF). [S.l.]: Remington Rand Univac. 1958. Consultado em 21 de setembro de 2016
- ↑ a b Sammet, Jean (1969). Programming Languages: History and Fundamentals. [S.l.]: Prentice-Hall. p. 132,135-137. ISBN 978-0-13-729988-1
- ↑ Sammet (1969) p. 137
- ↑ 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
- ↑ 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
- ↑ Univac (1958) p. 8