ALGOL

ALGOL

Se você carregar obiblioteca de matemática BCvocê obtém as funções trigonométricas s()e c()que a()são seno, cosseno e arco tangente, respectivamente. Por que essas três funções?

Eu sei por que são esses três do ponto de vista matemático: é porque esses são os três que você precisa para traduzir diretamente entre coordenadas cartesianas e polares. Sou professor de matemática e infelizmente este é o único lugar onde vi seno/cosseno/arcotangente estabelecido como o conjunto deprimitivofunções trigonométricas, então eu esperava que alguém pudesse me dizerpor quenum contexto mais histórico. Não sei, preciso principalmente de munição ao conversar com educadores de matemática sobre por que não é uma ideia blasfema apresentar o arco tangente aos alunos antes da tangente.

Responder1

Não é uma resposta completa, mas talvez seja um tanto útil.

Mais uma lista de exemplos de uso de funções trigonométricas nas primeiras adaptações. Também uma olhada no mundo UNIX.


ALGOL

Artigo interessante sobre a história:

ALGOL foi desenvolvido na década de 1950. Numa reunião conjunta entre cientistas da computação europeus e americanos em 1958 - onde também se chegouRelatório Preliminar sobre a Linguagem Algorítmica Internacionaltambém conhecido como Relatório de Zurique. Naquela época o trabalho era unificar a notação e como se escrevem algoritmos para computadores.Como um trecho do relatório 58'para mostrar alguns dosdiscussãoa esse respeito:

“Os identificadores que designam funções, assim como no caso das variáveis, podem ser escolhidos de acordo com o gosto. Contudo, certos identificadores devem ser reservados para as funções padrão de análise.

Esta lista reservada deve conter:

abs (E) para o módulo (valor absoluto) do valor da expressão E
sinal (E) para o sinal do valor de E
inteiro (E) para o maior inteiro não maior que o valor de E
sqrt (E) para a raiz quadrada do valor de E
sen (E) para o seno do valor de E
e assim por diante, de acordo com a notação matemática comum.”


Do ALGOL 58 obteve-se o ALGOL 60 onde, talvez, pode-se dizer que o trabalho também é mais concreto sobre o que ter como básico (no que diz respeito às funções trigonométricas:

http://web.eecs.umich.edu/~bchandra/courses/papers/Naure_Algol60.pdf

Relatório sobre a linguagem algorítmica ALGOL 60

Em suma , recomenda isso sine como funções padrão.cosarctan


ALGO

Se olharmos para as instalações que realizam matemática na era digital, uma das primeiras máquinas foi o computador Bendix G-15 (final da década de 1950). Utiliza ALGO que foi influenciado pelo ALGOL 58. Possui uma biblioteca que não faz parte do sistema Algo. As rotinas na biblioteca são as seguintes, SIN, COS, ARCTN:

Rotinas da Biblioteca ALGO

Para usar essas rotinas foi carregado usando palavras de código:

SIN    0101000
COS    0168000
ARCTN  0164000

Carregado como por exemplo:

LIBRAry SIN{0101000}

Como afirma

"Rotinas de linguagem de máquina podem ser adicionadas à biblioteca.", mas esses três foram os incluídos na biblioteca. (Ele também usa sexadecimal para hexadecimal - mas isso não é importante aqui, mas é divertido.)


UNIX

Versão 1do UNIX incluídobas, um dialeto básico (de propriedade de Thompson). Incluía as seguintes funções integradas: arg, exp, log, sin, cos, atn, rnd, expre int.

Versão 2também se tinha base ademais se encontra uma lista de sub-rotinas onde lista entre outras: atan, hypot, log, sin(seno/cosseno). Ele também foi empacotado com dc.

Existe também bc, mas foi para compilar o programa B.

Também vale a pena mencionar: ttt(tick-tack-toe), bj(black-jack), moo(o jogo MOO).

Versão 5. Se alguém quiser ver o código-fonte de etc. sin/cos, atanpode-se, por exemploolha esse código:

  • Sub-rotinas:usr/source/s3/{atan.s,sin.s}
  • Integrações BÁSICAS:usr/source/s1/bas4.s

Atenção!Arquivos, por exemplo, coisas de 1972 (s2) têmcaminhos absolutos!


O mathlib encontrado no V7 foi expandido para incluir tanetc.

Também inclui Fortran77.


AC

BC viu a luz do dia em 1975 e, conforme observado na pergunta, também inclui esses três métodos básicos. Desenvolvido por Robert Morris e Lorinda Cherry. Na /usr/doc/bc/bcversão V6 (1975):

3.Existe uma biblioteca de funções matemáticas que podem ser obtidas digitando no nível de comando

bc –l

Este comando irá carregar um conjunto de funções de biblioteca que, no momento da escrita, consiste em seno (denominado `s'), cosseno (`c'), arco tangente (`a'), logaritmo natural (`l'), exponencial (`e') e funções de Bessel de ordem inteira (`j(n,x)'). Sem dúvida, mais funções serão adicionadas com o tempo. A biblioteca define a escala para 20. Você pode redefini-la para outro valor, se desejar. O projeto dessas rotinas de biblioteca matemática é discutido em outro lugar [4].

  • [4]Roberto Morris,Uma biblioteca de sub-rotinas matemáticas padrão de referência,

Esse papelno entanto, parece ser bastante difícil de encontrar.

Portanto, pelas listagens, parece que as funções trigonométricas básicas faziam parte do sistema já na V1. bcutilizou-os na rotina de carregamento.


Notas do Unix Heritage Wiki(cc)

Roberto Morris

A vida com Unix diz: Escrevi dc e fiquei com Lorinda Cherry.

Um leitor de pesquisa Unix diz: Bob (Robert) Morris interveio onde quer que a matemática estivesse envolvida, fosse análise numérica ou teoria dos números. Bob inventou os utilitários distintamente originais typoe dc- bc(com Lorinda Cherry),escreveu a maior parte da biblioteca de matemática, e escreveu números primos e fator (com Thompson). Sua série de programas de criptografia fomentou o interesse contínuo do Centro pela criptografia.

Lorinda Cereja

Life with Unix diz: Writer of the Writer's Workbench (dicção, estilo, etc.), be e dc. Escreveu eqncom bwk.

Um leitor de pesquisa Unix diz: Lorinda L. Cherry colaborou com Morris em dc- bce typo. Sempre fascinada pelo processamento de texto, Lorinda iniciou eqne inventou o parts, um analisador aproximado que foi explorado no célebre Writer's Workbench®, ww6(v8).


Elliott 803

É claro que não há então que não existam sistemas que implementem mais funções, ou talvez não as tenham como funções centrais. Mas isso é história... :P

Adições de Elliot 803

Adições de Elliot 803:

arccos, arcsin, tan- que sãoacréscimos a sin, cos,arctan.


FORTRAN

FORTRAN 1958


BÁSICO

BASIC nascido em 1964 tem SIN, COS,TANe ATN.

TRIG BÁSICO

Manual BÁSICO (1964)

Conforme comentário de@roaima.

A maioria dos dialetos do BASIC usados ​​em computadores domésticos (por volta de 1975 em diante) também tinham SIN, COS, TAN, ATN (arctan). Nenhum outro inverso. Presumo que TAN foi incluído para minimizar o limite de erro ao usar SIN/COS porque todas essas funções trigonométricas foram geradas por meio de uma tabela de pesquisa bastante pequena.

APOLO 11

Ocódigo-fonte para o módulo de comando e lunar APOLLO 11mostrar que eles tinham pelo menos uma sub-rotina paraARCTAN

Você pode argumentar que eles conseguiram pousar na lua sem uma sub-rotina TAN;)

CORDIC

CORDIC (algoritmo de Volder)é uma menção digna de nota quando se trata de implementação trigonométrica.


Estatisticas

Uma adição interessante de@Stephen Kitt, a partir de comentários:

Outro artigo interessante éEstatísticas sobre o uso de sub-rotinas matemáticas de uma biblioteca de centro de informática, publicado em 1973, o que indica que, em Purdue no início de 1973, sin / cos / atan eram as funções trigonométricas mais comumente usadas, muito à frente de tan / asin / acos / tanh:

sin  / cos    39,462
atan          27,248

tan            4,707
asin / acos    4,139
tanh           2,546

Mergulho

Não é ummergulho profundo, mas pelo menos um pouco mais sobre o assunto. O artigo da ALGOL é talvez o mais acertado.

Quanto ao BC foisem encontrar uma cotação diretauma decisão de Morris/Cherry de incluir essas funções básicas específicas carregando da biblioteca pela -lopção.


Em suma, não é que não sequererpor exemplo tan, mas a história mostra quais funções trigonométricas foram escolhidas para implementação como base - em função dos recursos e do uso.

informação relacionada