MobileBASIC

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 29 septembrie 2017; verificările necesită 17 modificări .
MobileBASIC
Clasa de limba limbaj de programare
Tipul de execuție Interpretat
Aparut in 2003
Autor David J În primul rând
Extensie de fișier .bas, .lis
Eliberare
  • Phone Edition: 1.9.1 de kiriman & dzanis (cel mai recent oficial - 1.92);
  • Ediție desktop: 2.3;
  • Ediția Android: 3.1
  • LITE pentru iOS: 1.2
A fost influențat De bază
 Fișiere media la Wikimedia Commons

MobileBASIC  este un limbaj de programare interpretat folosit pentru telefoanele mobile cu MIDP-2.0 . Vă permite să scrieți cu ușurință programe direct pe telefonul sau tableta Android. Există în 4 implementări: ca mediu de programare pentru un computer, ca MIDlet obișnuit pentru dispozitive mobile, ca aplicație pentru dispozitive care rulează Android și iOS .

Limbajul a apărut în 2002 datorită programatorului David Firth ca un  instrument ușor și convenabil pentru dezvoltarea de software pentru telefoane mobile.

Versiunile oficiale sunt numerotate după cum urmează:

MobileBASIC Phone Edition

Sintaxa versiunii mobile este foarte asemănătoare cu vechile versiuni BASIC . În primul rând, se utilizează numerotarea obligatorie a liniilor, iar în al doilea rând, procedurile și funcțiile definite de utilizator nu sunt utilizate (în schimb este folosită comanda GOSUB). Iată un exemplu de cod în MobileBASIC:

10 INPUT "Introduceți numele dvs." , NUME $ 20 PRINT "Bună, " + NUME $ + "!" 30 DACĂ NU INKEY ( 0 ) ATUNCI GOTO 30 40 END

Din linia 30 se poate observa că tastatura este bine gândită în această limbă. Dar cu alte caracteristici importante ale telefonului: formulare și pânză , totul este mult mai rău. Să începem cu faptul că nu puteți încadra mai mult de un control pe un formular. În al doilea rând, pânza și formularele de pe majoritatea telefoanelor folosesc codificări diferite. Și ceea ce pare natural pe pânză, „Bună, lume!”, Pe formă, se poate transforma în krakozyabry (corectat în cele mai recente versiuni). De asemenea, datorită interpretării duble (codul de program de către interpretul Java și interpretul însuși prin intermediul mașinii Java ), codul este executat relativ lent. Cu toate acestea, acest limbaj este destul de ușor de învățat și o bună introducere în elementele de bază ale programării. Începând cu versiunea 1.8.4, Mumey a început să dezvolte proiectul, în urma căruia programul a dobândit o interfață ușor de utilizat, mai multe comenzi noi și capacitatea de a crea aplicații Java cu drepturi depline care funcționează fără un shell de programator (această caracteristică a fost acolo înainte, în acest scop a fost necesar să împachetați fișierul bas gata făcut (Autorun.bas) și resursele în arhivă cu programatorul însuși). Ultima versiune reală a fost 1.8.6.2 de aNNiMON . Însuși David Firth, în decembrie 2010, a lansat o nouă versiune, 1.9, dar toate modificările au constat doar în adăugarea funcției POWER pentru numere fracționale, în rest totul a rămas ca în versiunea 1.8, așa că dezvoltatorii continuă să folosească modificări [1] . Dacă versiunea 1.9 a fost lansată împreună cu codul sursă, atunci 1.91 este închisă din nou și are un preț de 4,99 GBP. pentru că Codurile sursă ale modificării Mumey s-au pierdut, în 2013, dezvoltatorul sub porecla kiriman le-a restaurat cu succes cu ajutorul unui decompiler și a unor sortări oficiale. Astfel, BASIC a renăscut în versiunea 1.9.1 de către kiriman & dzanis  (link inaccesibil) . Au fost remediate numeroase erori în el, cum ar fi asamblarea într-un MIDlet și lista de deschidere, fișierele bas pe telefoanele Nokia și au fost adăugate 5 comenzi noi, dintre care cea mai importantă este REPAINT. Viteza de interpretare a fost mărită prin schimbarea formatului bas (versiunile anterioare de BASIC nu îl acceptă) și prin rescrierea lucrării cu variabile de tip Float. Anterior, numerele în virgulă mobilă erau emulate - era prea lent. În ceea ce privește stocarea codului, MobileBASIC poate stoca codurile sursă ale programului în două versiuni - ca fișier text simplu sau ca bytecode. În primul caz, se obișnuiește să se dea fișierului extensia .lis (din comanda BASIC LIST), în al doilea - .bas.

Structura fișierului BAS și ofuscarea codului

Capacitatea de a despacheta liber o arhivă jar și de a deschide orice modul de program folosind MobileBASIC însuși îi îngrijorează pe programatori. La urma urmei, atunci oricine poate privi și schimba codul și fără prea mult efort. La începutul anului 2010, a apărut un obfuscator de fișiere BAS. Sarcina lui era să suprascrie numele variabilelor folosite în program. Acesta a fost impulsul pentru a studia structura bytecode. Un timp mai târziu, obfuscatorul a trecut la un nou nivel - acum „strica” fișierul în așa fel încât să nu poată fi deschis folosind instrumente MobileBASIC, în timp ce, în același timp, codul asamblat funcționează absolut. Până în prezent, structura a fost dezvăluită complet și este deja utilizată - au fost realizate un decompiler BAS=>LIS și un compilator LIS=>BAS, este posibilă o altă aplicație - un interpret care înțelege mai multe funcții.

Istoricul versiunilor

Versiune Schimbări
1.8.0 Interfață text, fără posibilitatea de a lucra cu FS
1.8.3 S-a adăugat capacitatea de a lucra cu FS , s-a adăugat capacitatea de a lucra în modul ecran complet
1.8.4, 1.8.5, 1.8.6 S-a adăugat o interfață ușor de utilizat, abilitatea de a crea un MIDlet fără ambalare manuală
1.8.6 pentru mile S-a rezolvat lucrul pe telefoanele Sony Ericsson din a 5-a generație
1.8.6.1 S-a rezolvat lucrul cu formularele pe telefoanele Sony Ericsson de a 5-a generație
1.8.6.2 S-a rezolvat lucrul pe telefoanele Sony Ericsson din a 5-a generație
1.9 Versiune oficială din 28 decembrie 2010. Codul sursă a devenit disponibil. Modificări minore de la 1.8.
1,91 Versiune oficială din 6 noiembrie 2011. Cod sursă închis. Modificări minore.
1.9.1 de kiriman & dzanis [2] Erori remediate.

Comenzi adăugate: REPAINT; RAND(MIN%,MAX%); ALPHAGEL GEL$,A%; COLORALPHAGEL GEL$,A%,R%,G%,B%; SENDMSMS(NUMBER$,TEXT$)

1.9.1 de vlavolk&garfield63 [3] modificări ale utilizatorului vlavolk:

1) S-au adăugat funcții noi: sound, soundinfo, soundsset, drawpolygon, fillpolygon, shot, gelzoom, gelrot, getcolor, pointpres, pointdrag, pointhold, pointx, pointy, inferior, superior, indexof, vibr.

2) S-au remediat erori cu imprimarea și elementul de meniu în timpul de execuție.

3) S-au remediat erori cu obținerea de discuri în readdir$'e și cu analizarea de la șir la float.

4) Acum unele funcții (readdir$, val, input) aruncă erori de bază.

5) Acum gelurile pot fi descărcate de pe Internet!

6) Un nou argument a fost adăugat la tonul de redare - volum!

7) S-a remediat o eroare cu rand.


Modificări ale utilizatorului garfild63:

1) Redenumită mai jos și mai sus în mai jos $ și mai sus, deoarece ele returnează variabile șir.

2) Rednumit pointpres în pointpress, deoarece nu există cuvânt pres în engleză!

3) S-a remediat o eroare cu getcolor și a adăugat o abreviere (gc).

4) Principiul de funcționare a fotografierii a fost schimbat: acum nu salvează întregul ecran, ci doar o parte a ecranului.

1.9.1.1 de garfield63 [4] 1) S-au adăugat 3 funcții noi - inputtext, printtext și btsh$. Citiți informațiile despre ei din ajutor (în fișierele Files.txt și Bluetooth.txt din arhiva Help.zip).

2) Adăugat lucru cu Bluetooth (încă instabil, există bug-uri).

3) A fost remediată o eroare, în care, la desenarea unui poligon plin de culoare, a fost trasată o linie orizontală suplimentară, împărțind-o în jumătate.

1.9.1.2 de garfield63 [5] 1) Funcția btsh$ fixată - acum BlueTooth poate fi folosit fără erori.

2) Adăugat lucru cu accelerometrul.

3) S-au adăugat funcțiile IMEI$(0) și GELMIRROR(GEL$).

4) S-au remediat erori în funcțiile trigonometrice în calculele de grade (acum dacă scrieți „10 DEG : PRINT SIN(90) : REPAINT”, „1.0” va fi afișat)

5) Funcția funcției FILLPOLYGON a fost remediată.

6) Tastatură adăugată pe ecran. Pentru a-l activa, trebuie să înlocuiți „On-Screen-Keypad: no” cu „On-Screen-Keypad: yes” în manifest.

7.) Ajutor corectat și actualizat. Arhiva Help.zip conține programul Program1.pas, care în PascalABC colectează fișiere text într-un binar.

Al doilea instrument de dezvoltare pentru aplicații pentru telefon este mediul de dezvoltare MobileBASIC. Dar codul scris în el este foarte diferit de versiunea mobilă a limbajului. Acum seamănă mai mult cu Quick Basic. Numerele liniilor au devenit etichete opționale, programul este ușor împărțit în module. Procedura principală este Main (Sub Main()). Dar rămâne un limbaj interpretat, deși mai rapid în execuție. S-a adăugat lucrul cu hărți și plăci , pentru care există editori încorporați. În general, ambele variante ale mediului de dezvoltare sunt bine adaptate special pentru crearea de jocuri, așa cum demonstrează capacitatea de a lucra cu elemente grafice (geluri) și sprite -uri .

Mediul de dezvoltare include, pe lângă editorul de cod cu evidențiere de sintaxă, mai multe editori specializati: un editor de tile (Editor de mosai), un editor de hărți (Editor de hărți), un instrument de redimensionare a imaginii (Redimensionare imagine), un selector de culori (Color Chooser) și un emulator încorporat. Programul este scris în Java SE , ceea ce îi permite să ruleze pe orice sistem de operare care are o mașină virtuală Java.

Cea mai recentă versiune este 2.3 din 8 noiembrie 2011 [6] .

MobileBASIC pentru Android

În iunie 2011, a fost lansată următoarea versiune a mediului de dezvoltare. De data aceasta - pentru platforma Android. Sintaxa este foarte asemănătoare cu cea a versiunii pentru PC, cu suport pentru matrice multidimensionale, rutine și funcții definite de utilizator. Programul include un ajutor de limba la îndemână și mai mult de 100 de exemple de utilizare a diferitelor caracteristici ale limbajului [7] . Există două versiuni ale mediului de dezvoltare: gratuit (dezavantaje - afișarea reclamelor [8] ) și complet, disponibil la un preț de 2,99 GBP. Cea mai recentă versiune este 4.9.11.

MobileBASIC LITE pentru iOS

În 2012, MobileBASIC sa extins pe o altă platformă, iOS. Noua versiune se numește MobileBASIC LITE. Include multe caracteristici specifice dispozitivelor iOS, cum ar fi poziționarea, lucrul cu accelerometrul și giroscopul, suport pentru hărți încorporate, lucrul cu baze de date și multe altele [9] . O referință detaliată a limbajului cu exemple este încorporată în mediul de dezvoltare.

JsMobileBasic

JsMobileBasic - Bibliotecă JavaScript care implementează mecanica MobileBASIC din comunitatea MobileBasicPRO. Utilizează HTML5 Canvas intern, dar există implementări SDL2. Au fost lansate implementări ulterioare ale bibliotecii pentru C++ , Node.js și Python .

Actualizat: Pe 25 ianuarie 2018, sursele JsMobileBasic au fost deschise [10] și pot fi acum vizualizate de oricine [11] . Alte surse de proiecte din comunitatea MobileBasicPRO pot fi găsite în depozitele lor GitHub [12]

Note

  1. ↑ Pagina de pornire MobileBASIC 1.91 (link descendent) . Consultat la 29 septembrie 2011. Arhivat din original pe 27 septembrie 2011. 
  2. Mobile Basic 1.9.1 de kiriman & dzanis | annimon.com . annimon.com. Preluat la 11 aprilie 2020. Arhivat din original la 15 ianuarie 2022.
  3. MobileBasic 1.9.1 de vlavolk&garfild63 | annimon.com . annimon.com. Data accesului: 11 aprilie 2020.
  4. MobileBASIC 1.9.1.1 de garfild63 | Waper . waper.ru. Preluat: 11 aprilie 2020.  (link indisponibil)
  5. MobileBASIC 1.9.1.2 de garfild63 | Waper . waper.ru. Preluat: 11 aprilie 2020.  (link indisponibil)
  6. ↑ Pagina de pornire MobileBASIC Desktop Edition (link descendent) . Consultat la 29 septembrie 2011. Arhivat din original pe 27 septembrie 2011. 
  7. Pagina de pornire MobileBASIC pentru Android (link descendent) . Consultat la 29 septembrie 2011. Arhivat din original pe 27 septembrie 2011. 
  8. MobileBASIC pentru Android 3.1 pe Android Market . Preluat la 11 decembrie 2011. Arhivat din original la 16 august 2011.
  9. MobileBASIC LITE pe iTunes . Consultat la 29 septembrie 2017. Arhivat din original la 28 martie 2017.
  10. JsMobileBasic (JsMB) open source! | Vkontakte . m.vk.com. Data accesului: 10 aprilie 2020.
  11. JsMB | Depozitul principal JsMobileBasic | Github . — 13-03-2018. Arhivat 27 noiembrie 2020.
  12. MobileBasicPRO | Github  (engleză) . GitHub. Data accesului: 10 aprilie 2020.

Vezi și

Link -uri