JOSS (linguagem de programação)
JOSS (um acrônimo para JOHNNIAC Open Shop System) foi uma das primeiras linguagens de programação interativas de tempo compartilhado.
JOSS I, desenvolvida por J. Clifford Shaw na RAND foi implementada pela primeira vez, em versão beta, no Johnniac computador em Maio de 1963. A implementação completa foi implantada em janeiro de 1964, suportando 5 terminais e a versão final, Joss In, suportando 10 terminais, foi implantada em janeiro de 1965.[1]
JOSS foi escrita em uma linguagem assembly simbólica chamada EasyFox (E e F no alfabeto fonético, os militares E.U. de época). EasyFox também foi desenvolvida por Cliff Shaw.
A linguagem JOSS foi apelidada de "o assitente útil" e é conhecida pela sua interface de conversação. Originalmente fitas verdes/pretas foram usadas em seus terminais, com o verde sendo utilizado para a entrada do usuário e preto para a resposta do computador. Qualquer comando que não era entendido provocava a resposta "Eh?".
JOSS II, foi desenvolvida por Charles L. Baker, W. Joseph Smith, D. Irwin Greenwald, e Edward G. Bryan para o computador PDP-6, entre 1964 e fevereiro de 1966.[2]
Muitos variantes de Joss foram desenvolvidas e aplicadas em uma variedade de plataformas. Algumas dessas variantes permaneceram muito semelhantes ao Joss original: TELCOMP, FOCAL, CAL, CITRAN, ISIS, PIL/I, JEAN (ICT 1900 series); ao passo que outras, como MUMPS, desenvolveram-se em direções distintas.
Exemplo de programa simples
1.1 Demand p,q. 1.2 Stop if q<0 or r(q,2)=0. 1.3 Set a=1. 1.4 Do part 2 while q>1 and a~=0. 1.5 Type a in form 3. 1.6 Stop.
2.1 Do part 20. 2.1 Do part 11 if p<0. 2.2 Do part 12 if p>=q. 2.3 Do part 13 if p=0. 2.4 Done if a=0. 2.5 Set p=p/4 while r(p,4)=0. 2.6 Do part 14 if r(p,2)=0. 2.7 Do part 20. 2.8 Set a=-a if r(p,4)=r(q,4)=3. 2.9 Set s=p, p=q, q=s. 2.95 Do part 20.
11.1 Set a=-a if r(q,4)=3. 11.2 Set p=|p|. 11.3 Do part 20.
12.1 Set p=r(p,q). 12.2 Do part 20.
13.1 Set a=0, p=1, q=1.
14.1 Set a=-a if r(q,8)=3 or r(q,8)=5. 14.2 Set p=p/2.
20.1 Type p, q in form 1 if a=1. 20.2 Type p, q in form 2 if a=-1.
Form 1: " L(%.0f,%.0f) =" Form 2: " -L(%.0f,%.0f) =" Form 3: " %.0f\n"
Note-se que esta não é uma exemplo original, mas sim um exemplo em um simulador moderno. Existem algumas diferenças sintáticas da língua JOSS original.
Referências
- ↑ WEXELBLAT, Richard L.(Editor) (1981). History of Programming Languages. New York: Academic Press. 758 páginas. ISBN 0-12-745040-8
- ↑ SAMMET, Jean E (1969). Programming Languages: History and Fundamentals. Englewood Cliffs, New Jersey: Prentice Hall. 785 páginas. ISBN 0-13-729988-5
Ligações externas
- "JOSS Users' Reference Manual", R.L. Clark, Report F-1535/9, RAND Corp (Jan 1975); Sammet 1969, pp.217-226.
- Entrevistas de história oral com Keith W. Uncapher, Instituto Charles Babbage, Universidade de Minnesota. Revisão dos projetos na RAND quando Keith Uncapher foi contratado em 1950 pela década de 1970, como JOHNNIAC, JOSS,uma rede nacional de sobrevivência, e alguns trabalhos relacionados com a ARPANET.