MobileBASIC

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 29. september 2017; checks kræver 17 redigeringer .
MobileBASIC
Sprog klasse programmeringssprog
Udførelsestype Fortolket
Dukkede op i 2003
Forfatter David J First
Filtypenavn _ .bas, .lis
Frigøre
  • Telefonudgave: 1.9.1 af kiriman & dzanis (seneste officielle - 1.92);
  • Desktop Edition: 2.3;
  • Android-udgave: 3.1
  • LITE til iOS: 1.2
Blev påvirket Grundlæggende
 Mediefiler på Wikimedia Commons

MobileBASIC  er et fortolket programmeringssprog, der bruges til MIDP-2.0- aktiverede mobiltelefoner . Giver dig mulighed for nemt at skrive programmer direkte på din Android-telefon eller -tablet. Det findes i 4 implementeringer: som et programmeringsmiljø for en computer, som en almindelig MIDlet til mobile enheder, som en applikation til enheder, der kører Android og iOS .

Sproget dukkede op i 2002 takket være programmøren David Firth som et  nemt og bekvemt værktøj til at udvikle software til mobiltelefoner.

Officielle versioner er nummereret som følger:

MobileBASIC Phone Edition

Syntaksen for mobilversionen ligner meget de gamle BASIC -versioner . For det første anvendes obligatorisk linjenummerering, og for det andet bruges brugerdefinerede procedurer og funktioner ikke (i stedet bruges GOSUB-kommandoen). Her er et eksempel på en kode i MobileBASIC:

10 INPUT "Indtast dit navn" , NAVN $ 20 UDSKRIV "Hej, " + NAVN $ + "!" 30 HVIS IKKE INKEY ( 0 ) GÅ TIL 30 40 SLUT

Fra linje 30 kan man se, at tastaturet er gennemtænkt på dette sprog. Men med andre vigtige telefonfunktioner: formularer og lærred , er alt meget værre. Lad os starte med, at du ikke kan passe mere end én kontrol på en formular. For det andet bruger lærred og formularer på de fleste telefoner forskellige kodninger. Og hvad der ser naturligt ud på lærredet, "Hej, verden!", På formularen kan det blive til krakozyabry (korrigeret i de seneste versioner). På grund af dobbelttolkning (programkode af Java-fortolkeren og selve fortolkeren via Java -maskinen ) udføres koden relativt langsomt. Dette sprog er dog ret nemt at lære og en god introduktion til det grundlæggende i programmering. Fra version 1.8.4 begyndte Mumey at udvikle projektet, som et resultat af hvilket programmet fik en brugervenlig grænseflade, flere nye kommandoer og evnen til at skabe fuldgyldige Java-applikationer, der fungerer uden en programmør-shell (denne funktion) var der før, til dette formål var det nødvendigt at pakke færdiglavet bas -fil (Autorun.bas) og ressourcer i arkivet med selve programmøren). Den sidste faktiske version var 1.8.6.2 af anNNiMON . David Firth selv udgav i december 2010 en ny version, 1.9, men alle ændringerne bestod kun i at tilføje POWER-funktionen til brøktal, ellers forblev alt som i version 1.8, så udviklere fortsætter med at bruge modifikationer [1] . Hvis version 1.9 blev udgivet sammen med kildekoden, lukkes 1.91 igen og er prissat til £4.99. Fordi Kildekoderne til Mumey-modifikationen går tabt, i 2013 gendannede udvikleren under kaldenavnet kiriman dem med succes ved hjælp af en decompiler og officielle sorteringer. Således blev BASIC genfødt til version 1.9.1 af kiriman & dzanis  (utilgængeligt link) . Adskillige fejl er blevet rettet i den, såsom samling i en MIDlet og åbning af lis, bas-filer på Nokia-telefoner, og 5 nye kommandoer er blevet tilføjet, hvoraf den vigtigste er REPAINT. Fortolkningshastigheden er blevet øget ved at ændre bas-formatet (tidligere versioner af BASIC understøtter det ikke) og ved at omskrive arbejdet med variabler af typen Float. Tidligere blev flydende kommatal efterlignet – det var for langsomt. Hvad angår kodelagring, kan MobileBASIC gemme programkildekoder i to versioner - som en almindelig tekstfil eller som en bytekode. I det første tilfælde er det sædvanligt at give filen filtypenavnet .lis (fra BASIC LIST-kommandoen), i det andet - .bas.

BAS-filstruktur og kodesløring

Muligheden for frit at pakke et jar-arkiv ud og åbne ethvert programmodul ved hjælp af MobileBASIC selv bekymrer programmører. Når alt kommer til alt, så kan enhver se på og ændre koden, og det uden den store indsats. I begyndelsen af ​​2010 dukkede en BAS-filobfuscator op. Hans job var at overskrive navnene på de variabler, der blev brugt i programmet. Dette var drivkraften til at studere strukturen af ​​bytekoden. Nogen tid senere flyttede obfuscatoren til et nyt niveau - nu "spoiler" den filen på en sådan måde, at den ikke kan åbnes ved hjælp af MobileBASIC-værktøjer, samtidig med at den samlede kode fungerer absolut. Til dato er strukturen blevet fuldt ud afsløret, og er allerede i brug - en BAS=>LIS decompiler og en LIS=>BAS compiler er blevet lavet, en anden applikation er mulig - en fortolker, der forstår flere funktioner.

Versionshistorik

Version Ændringer
1.8.0 Tekstgrænseflade, ingen mulighed for at arbejde med FS
1.8.3 Tilføjet muligheden for at arbejde med FS , tilføjet muligheden for at arbejde i fuldskærmstilstand
1.8.4, 1.8.5, 1.8.6 Tilføjet en brugervenlig grænseflade, muligheden for at oprette en MIDlet uden manuel indpakning
1.8.6 for Miles Rettet arbejde på 5. generation Sony Ericsson-telefoner
1.8.6.1 Fixed arbejde med formularer på 5. generation Sony Ericsson-telefoner
1.8.6.2 Rettet arbejde på 5. generation Sony Ericsson-telefoner
1.9 Officiel version dateret 28. december 2010. Kildekoden er blevet tilgængelig. Mindre ændringer fra 1.8.
1,91 Officiel version dateret 6. november 2011. Lukket kildekode. Mindre ændringer.
1.9.1 af kiriman & dzanis [2] Bugs rettet.

Tilføjede kommandoer: REPAINT; RAND(MIN%,MAX%); ALPHAGEL GEL$,A%; COLORALPHAGEL GEL$,A%,R%,G%,B%; SENDMSMS(NUMBER$,TEXT$)

1.9.1 af vlavolk&garfield63 [3] vlavolk brugerændringer:

1) Tilføjet nye funktioner: sound, soundinfo, soundsset, drawpolygon, fillpolygon, shot, gelzoom, gelrot, getcolor, pointpres, pointdrag, pointhold, pointx, pointy, lower, upper, indexof, vibr.

2) Rettede fejl med print og menuem under runtime.

3) Rettede fejl med at få diske i readdir$'e og med parsing fra streng til float.

4) Nu giver nogle funktioner (readdir$, val, input) BASIC fejl.

5) Nu kan geler downloades fra internettet!

6) Et nyt argument er blevet tilføjet til playtone - volumen!

7) Rettede en fejl med rand.


Ændringer af bruger garfild63:

1) Omdøbt nedre og øvre til nedre $ og øvre $, fordi de returnerer strengvariabler.

2) Omdøbt pointpres til pointpress, fordi der er intet ord pres på engelsk!

3) Rettede en fejl med getcolor og tilføjede en forkortelse (gc) til den.

4) Princippet for drift af skud er blevet ændret: nu gemmer det ikke hele skærmen, men kun en del af skærmen.

1.9.1.1 af garfield63 [4] 1) Tilføjet 3 nye funktioner - inputtext, printtext og btsh$. Læs oplysningerne om dem i hjælpen (i filerne Files.txt og Bluetooth.txt i Help.zip-arkivet).

2) Tilføjet arbejde med Bluetooth (stadig ustabil, der er fejl).

3) Der er blevet rettet en fejl, hvor man, når man tegnede en polygon fyldt med farve, tegnede en ekstra vandret linje, som delte den i to.

1.9.1.2 af garfield63 [5] 1) Fast btsh$ funktion - nu kan BlueTooth bruges uden fejl.

2) Tilføjet arbejde med accelerometeret.

3) Tilføjet IMEI$(0) og GELMIRROR(GEL$) funktioner.

4) Rettede fejl i trigonometriske funktioner i gradberegninger (hvis du nu skriver "10 DEG : PRINT SIN(90) : REPAINT", vil "1.0" blive vist)

5) Arbejdet med FILLPOLYGON-funktionen er blevet rettet.

6) Tilføjet skærmtastatur. For at aktivere det, skal du erstatte "On-Screen-Keypad: no" med "On-Screen-Keypad: yes" i manifestet.

7.) Rettet og opdateret hjælp. Help.zip-arkivet indeholder programmet Program1.pas, som i PascalABC samler tekstfiler til en binær.

Det andet udviklingsværktøj til telefonapplikationer er MobileBASIC-udviklingsmiljøet. Men koden skrevet i den er meget forskellig fra den mobile version af sproget. Nu ligner det mere Quick Basic. Linjenumre er blevet valgfrie etiketter, programmet opdeles nemt i moduler. Hovedproceduren er Main (Sub Main()). Men det forbliver stadig et fortolket sprog, omend hurtigere i udførelsen. Tilføjet arbejde med kort og fliser , som der er indbyggede editorer til. Generelt er begge variationer af udviklingsmiljøet godt skræddersyet specifikt til at skabe spil, hvilket fremgår af evnen til at arbejde med grafiske elementer (geler) og sprites .

Udviklingsmiljøet omfatter, udover kodeeditoren med syntaksfremhævning, flere mere specialiserede editorer: en fliseeditor (Tile Editor), en korteditor (Map Editor), et billedstørrelsesværktøj (Image Resize), en farvevælger (Color) Vælger), og en indbygget emulator. Programmet er skrevet i Java SE , som gør det muligt at køre på ethvert operativsystem, der har en Java virtuel maskine.

Den seneste version er 2.3 fra 8. november 2011 [6] .

MobileBASIC til Android

I juni 2011 blev den næste version af udviklingsmiljøet frigivet. Denne gang - til Android-platformen. Syntaksen minder meget om pc-versionen med understøttelse af multidimensionelle arrays, brugerdefinerede rutiner og funktioner. Programmet indeholder en praktisk sproghjælp og mere end 100 eksempler på brug af forskellige funktioner i sproget [7] . Der er to versioner af udviklingsmiljøet: gratis (ulemper - viser annoncer [8] ) og fuld, tilgængelig til en pris af £2,99. Den seneste version er 4.9.11.

MobileBASIC LITE til iOS

I 2012 udvidede MobileBASIC til en anden platform, iOS. Den nye version hedder MobileBASIC LITE. Den indeholder mange funktioner, der er specifikke for iOS-enheder, såsom positionering, arbejde med accelerometeret og gyroskopet, understøttelse af indbyggede kort, arbejde med databaser og meget mere [9] . En detaljeret sprogreference med eksempler er indbygget i udviklingsmiljøet.

JsMobileBasic

JsMobileBasic - JavaScript-bibliotek, der implementerer MobileBASIC-mekanik fra MobileBasicPRO-fællesskabet. Den bruger HTML5 Canvas internt, men der er SDL2-implementeringer. Senere implementeringer af biblioteket blev frigivet til C++ , Node.js og Python .

Opdateret: Den 25. januar 2018 blev JsMobileBasic-kilder åbnet [10] og kan nu ses af alle [11] . Andre kilder til projekter fra MobileBasicPRO-fællesskabet kan findes i deres GitHub-depoter [12]

Noter

  1. MobileBASIC 1.91 Hjemmeside (downlink) . Hentet 29. september 2011. Arkiveret fra originalen 27. september 2011. 
  2. Mobile Basic 1.9.1 af kiriman & dzanis | annimon.com . annimon.com. Hentet 11. april 2020. Arkiveret fra originalen 15. januar 2022.
  3. MobileBasic 1.9.1 af vlavolk&garfild63 | annimon.com . annimon.com. Dato for adgang: 11. april 2020.
  4. MobileBASIC 1.9.1.1 af garfild63 | Waper . waper.ru. Hentet: 11. april 2020.  (ikke tilgængeligt link)
  5. MobileBASIC 1.9.1.2 af garfild63 | Waper . waper.ru. Hentet: 11. april 2020.  (ikke tilgængeligt link)
  6. MobileBASIC Desktop Edition-hjemmeside (downlink) . Hentet 29. september 2011. Arkiveret fra originalen 27. september 2011. 
  7. MobileBASIC til Android-hjemmeside (downlink) . Hentet 29. september 2011. Arkiveret fra originalen 27. september 2011. 
  8. MobileBASIC til Android 3.1 på Android Market . Hentet 11. december 2011. Arkiveret fra originalen 16. august 2011.
  9. MobileBASIC LITE på iTunes . Hentet 29. september 2017. Arkiveret fra originalen 28. marts 2017.
  10. JsMobileBasic (JsMB) open source! | Vkontakte . m.vk.com. Dato for adgang: 10. april 2020.
  11. JsMB | JsMobileBasic-hovedlageret | Github . — 2018-03-13. Arkiveret 27. november 2020.
  12. MobileBasicPRO | Github  (engelsk) . GitHub. Dato for adgang: 10. april 2020.

Se også

Links