Movatterモバイル変換


[0]ホーム

URL:


Vés al contingut
Viquipèdial'Enciclopèdia Lliure
Cerca

Sinclair BASIC

De la Viquipèdia, l'enciclopèdia lliure
Infotaula de llenguatge de programacióSinclair Basic
Tipusllenguatge de programació d'alt nivellModifica el valor a Wikidata
DesenvolupadorNine Tiles Networks
Sinclair Research
Paradigma de programacióimperatiu
Influenciat perBASIC
Ha influenciatSuperBASIC

Sinclair Basic és el nom que rep elBASIC implementat a laMemòria ROM delsmicroordinadorsSinclair des delZX80 fins a les diferents versions delZX Spectrum. Aquests ordinadors es van comercialitzar des de 1980 (modelSinclair ZX80) fins a 1992 (modelsAmstrad/Sinclair ZX Spectrum).[1]

Història

[modifica]
Generació de lacatifa de Sierpinski al Sinclair ZX Spectrum (14m 39s).

ElSinclair Basic va ser desenvolupat originalment el 1979 per l'empresa «Nine Tiles Networks Ltd.» com una versió mínima delBASIC estàndard amb 4KiB, per alSinclair ZX80. Va evolucionar per a 8 KiB en elSinclair ZX81 i per a una versió versió gairebé completa de 16 KiB en elZX Spectrum.[cal citació]

Varen existir versions d'aquest llenguatge per a clònics del Sinclair Spectrum, com l'estatunidencTimex Sinclair 2068 («Timex Basic») i elbrasilerMicrodigital TK 90X («TK BASIC»),[2] que han afegitordres addicionals, no trobades en el Sinclair Basic original.

Diferències respecte al BASIC estàndard

[modifica]

Sintaxi

[modifica]

En general, el Sinclair Basic és unBASIC clàssic que utilitza nombres de línia i no admetprogramació estructurada.[3]

Un detall addicional per als usuaris del «ZX Spectrum» anterior al model de 128K era que cada ordre estava emmagatzemada en una tecla diferent, de manera que per escriure:

10 FOR A=1 TO 2*PI

Calia entrar:

10 F A=1 <SYMBOL-SHIFT>-<F> 2* <SYMBOL-SHIFT>-<ALT-SHIFT>-<M>
  • Això tenia com a objecte simplificar l'anàlisi sintàctica de programes, ja que permetia emmagatzemar les comandes com dígits de control (caràcters 165 endavant). En aquest sentit, els programes del Sinclair BASIC s'assemblen als programes emmagatzemats en «format binari» deBASICA oGW-BASIC.[4]
  • Un altre detall addicional és que les funcions no portenparèntesis.
  • A diferència d'ANSI BASIC, però dins del que és habitual en els BASIC actuals, s'accepten variables amb noms de qualsevol longitud.
  • L'ús de «LET» és obligatori.
  • Hi ha una diferència important en el maneig de variables de cadena. Les variables de cadena es tracten, com enC, com amatrius:
10 LET A$="ZXSPECTRUM"20 PRINT A$(TO 3):REM "ZXS"30 PRINT A$(4 TO 6):REM "PEC"40 PRINT A$(7):REM "T"50 PRINT A$(8 TO):REM "RUM"
  • Només es suporta un tipus de variable numèrica.
  • A diferència de la majoria dels BASIC, i de fet, de la majoria delsllenguatges, accepta espais en els noms de les variables:
10 LET nomes una cosa=120 PRINT nomes una cosa

Operadors

[modifica]
  • No hi ha operador demòdul.
  • «AND» pot actuar de forma equivalent a l'operador «?» de C:
10 PRINT "TINC " + ("FAM" AND MENJAR <0) + ("FRED" AND TEMPERATURA <10)

Ramificació i subrutines

[modifica]
  • «DO», «WHILE», «WEND», «ELSE» i «END IF» no estan suportats.
  • Es suporta «DEF FN», que ha d'estar definit com una operació matemàtica.
  • No són suportades etiquetes ni «ON GOTO», però la línia a la qual salta el «GOTO» pot estar continguda en una variable:
10 LET FI=4020 GOTO FI30 PRINT "AIXO' NO S'IMPRIMEIX"40 PRINT "FI DEL PROGRAMA"

Instruccions d'entrada/sortida

[modifica]
  • Les principals diferències amb BASIC estan en les operacions d'arxiu. Es suporten «LOAD», «SAVE» i «MERGE» per a accés acinta magnètica, així com «CAT», «PRINT», «INPUT», «OPEN#» i «CLOSE#» per a accés adisc en els models dotats d'aquestperifèric.
  • «PRINT» admet «AT» (reemplaçant a «LOCATE»), «TAB» i el separador «'», d'avanç de línia. «PRINT#» significa «escriure a la part inferior de la pantalla», no en arxiu. Les instruccions de color «PAPER» (fons), «INK» (primer pla), «OVER» (sobreescriptura) i «FLASH» (parpelleig) també poden utilitzar-se com atributs de «PRINT».
  • Les instruccions de dibuix són «PLOT» (dibuixar un punt), «DRAW» (dibuixar una línia des de l'últim punt) i «CIRCLE» (cercle).

Resum

[modifica]

Els següents quadres comparen el Sinclair Basic amb un BASIC original no estructurat, utilitzant el programa d'exemple que apareix en l'article de laViquipèdia enanglès sobreBASIC:

Exemple 1 - BASIC original no estructurat (Applesoft BASIC)
10 INPUT "Com es diu ? ";U$20 PRINT "Hola ";U$30 INPUT "Quants asteriscs desitja ? ";N35 S$=""40 FOR I=1 TO N50 S$=S$+"*"55 NEXT I60 PRINT S$70 INPUT "Voleu més asteriscs ? ";A$75 PRINT80 IF LEN (A$)=0 THEN GOTO 7090 A$=LEFT(A$,1)100 IF (A$="S") OR (A$="s") THEN GOTO 30110 PRINT "Adéu ";120 FOR I=1 TO N130 PRINT U$;"";140 NEXT I150 PRINT
Exemple 2 - Sinclair Basic
5 OVER 1: REM usat en combinació amb CHR$ 8 per produir accents.10 INPUT "Com es diu? ";U$20 PRINT "Hola ";U$30 INPUT "Quants asteriscs desitja? ";N35 LET S$=""40 FOR I= 1 TO N50 LET S$=S$+"*"55 NEXT I60 PRINT S$70 PRINT "Voleu me";CHR$ 8;"'s asteriscs? ";: INPUT A$80 PRINT: IF LEN A$=0 THEN GOTO 7090 LET A$=A$(1)100 IF (A$="S") OR (A$="s") THEN GOTO 30110 PRINT "Ade";CHR$ 8;"'u ";120 FOR I=1 TO N130 PRINT U$;" ";140 NEXT I150 PRINT:OVER 0

Referències

[modifica]
  1. «How the Spectrum began a revolution»(en anglès).BBC,23-04-2007.[Consulta: 10 setembre 2011].
  2. Marcelo Martins.«TK90X»(en portuguès). Clube do TK90X,26-08-2011.[Consulta: 10 setembre 2011].
  3. Sir Norris.«Sinclair BASIC»(en anglès),21-03-2005.[Consulta: 10 setembre 2011].
  4. Norman L. De Forest.«GW-BASIC tokenised program format»(en anglès).[Consulta: 2 octubre 2011].

Enllaços externs

[modifica]
Obtingut de «https://ca.wikipedia.org/w/index.php?title=Sinclair_BASIC&oldid=33809721»
Categories:
Categories ocultes:

[8]ページ先頭

©2009-2026 Movatter.jp