PILOTO - PILOT

Pesquisa, aprendizagem ou ensino programado ( PILOT ) é uma linguagem de programação simples de alto nível desenvolvida na década de 1960. Como seu irmão mais novo LOGO , foi uma incursão precoce na tecnologia de instrução assistida por computador .

PILOT é uma linguagem imperativa semelhante em estrutura a BASIC e FORTRAN em seu layout e estrutura básicos. Suas palavras-chave são caracteres únicos, T para "digitar" para imprimir texto, ou A para "aceitar", para inserir valores do usuário.

É história

O PILOT foi desenvolvido por John Amsden Starkweather , professor de psicologia do centro médico da Universidade da Califórnia em San Francisco . Em 1962, ele desenvolveu uma linguagem simples para automatizar testes de aprendizagem chamada Computest. A partir de 1968, desenvolveu um projeto subsequente denominado PILOT, para vários computadores da época, como o SDS 940 .

Sintaxe da linguagem

Uma linha de código PILOT contém (da esquerda para a direita) os seguintes elementos de sintaxe :

  • uma etiqueta opcional
  • uma carta de comando
  • um Y opcional (para sim) ou N (para não)
  • uma expressão condicional opcional entre parênteses
  • dois pontos (":")
  • um operando ou vários operandos delimitados por vírgulas.

Um rótulo também pode estar sozinho em uma linha, não seguido por outro código. A sintaxe de um rótulo é um asterisco seguido por um identificador (string alfanumérica com caractere inicial alfabético).

Cartas de comando

Os seguintes comandos são usados ​​no "core PILOT". As linhas que começam com "R:" indicam uma observação (ou um comentário) explicando o código a seguir.

UMA
Aceite a entrada em "aceitar buffer ". Exemplos:
 R:Next line of input replaces current contents of accept buffer
 A:
 R:Next line of input replaces accept buffer, and string variable 'FREE'
 A:$FREE
 R:Next 3 lines of input assigned to string variables 'X', 'Y' and 'Z'
 A:$X,$Y,$Z
 R:Numeric input assigned to numeric variable "Q"
 A:#Q
C
Calcule e atribua valor numérico. A maioria das implementações PILOT possui apenas aritmética de inteiros e nenhum array . Exemplo:
 R:Assign arithmetic mean of #X and #Y to #AM
 C:#AM=(#X+#Y)/2
D
Dimensione uma matriz, em algumas implementações.
E
Finalizar (retornar de) a sub - rotina ou (se fora de uma sub-rotina) cancelar o programa. Sempre usado sem nenhum operando.
J
Vá para uma etiqueta. Exemplo:
  J:*RESTART
M
Compare o buffer de aceitação com variáveis ​​de string ou literais de string . Exemplo:
  R:Search accept buffer for "TRUTH", the value of MEXICO and "YOUTH", in that order
  M:TRUTH,$MEXICO,YOUTH

A primeira string de correspondência (se houver) que é uma substring do buffer de aceitação é atribuída à variável especial $ MATCH. Os caracteres do buffer à esquerda da primeira correspondência são atribuídos a $ LEFT e os caracteres à direita são atribuídos a $ RIGHT.

O sinalizador de correspondência é definido como 'sim' ou 'não', dependendo se a correspondência é feita. Qualquer instrução que tenha um Y após a letra de comando é processada apenas se o sinalizador de correspondência estiver definido. As instruções com N são processadas apenas se o sinalizador não estiver definido.

N
Equivalente a TN: (digite se a última correspondência não tiver êxito)
R
O operando de R: é um comentário e, portanto, não tem efeito.
T
Operando 'Tipo' como saída. Exemplos:
  R:The next line prints a literal string
  T:Thank you for your support.
  R:The next line combines a literal string with a variable expression
  T:Thank you, $NAME.
você
Use (chame) uma sub-rotina. Uma sub-rotina começa com um rótulo e termina com E: Exemplo:
  R:Call subroutine starting at label *INITIALIZE
  U:*INITIALIZE
Y
Equivalente a TY: (digite se a última correspondência for bem-sucedida)
Parênteses
Se houver uma expressão entre parênteses em uma declaração, é uma expressão condicional e a declaração é processada apenas se o teste tiver um valor 'verdadeiro'. Exemplo:
  R:Type message if x>y+z
  T(#X>#Y+#Z):Condition met

Derivados

As extensões para o núcleo do PILOT incluem matrizes e números de ponto flutuante no Apple PILOT e implementação de gráficos de tartaruga inspirados no LOGO no Atari PILOT.

Entre 1979 e 1983, o UK PILOT User Group foi dirigido por Alec Wood, um professor da Wirral Grammar School for Boys, Merseyside UK. Várias versões de código de máquina de um mini PILOT foram produzidas para os microcomputadores da época e uma escola na Escócia desenvolveu um tutorial interativo de língua estrangeira onde os alunos guiaram pegadas por uma cidade perguntando e respondendo a perguntas em alemão, francês, etc. 1979 da Era do Computador cobriu uma implementação inicial chamada Tiny Pilot e forneceu uma lista completa de códigos de máquina.

As versões do PILOT sobrepostas aos interpretadores BASIC dos primeiros microcomputadores não eram desconhecidas no final dos anos 1970 e início dos anos 1980, e a Byte Magazine em um ponto publicou um derivado completo não- Turing do PILOT conhecido como Waduzitdo por Larry Kheriarty como uma forma de demonstrar o que o computador era capaz de fazer.

O Vanilla PILOT de 1983 para o Commodore 64 adicionou gráficos de tartaruga, assim como o Super Turtle PILOT, que foi publicado como uma listagem na edição de outubro de 1987 da COMPUTE! revista.

Em 1991, o Instituto de Engenheiros Elétricos e Eletrônicos (IEEE) publicou um padrão para o Pilot como IEEE Std 1154-1991. Desde então, foi retirado. Uma implementação de referência com base nisso foi implementada por Eric Raymond e mantida - relutantemente - pelos próximos 15 anos.

Em 1990, o eSTeem PILOT para computadores Atari ST foi desenvolvido e programado por Tom Nielsen, EdD. Com base nos padrões IEEE para PILOT, ele inclui recursos específicos do Atari, como controle de dispositivos Laserdisc e CDROM.

Uma implementação de amadores de 2018, psPILOT, baseada em parte no padrão IEEE, foi implementada usando a linguagem de script PowerShell da Microsoft.

Referências

Leitura adicional