MobileBASIC

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 september 2017; kontroller kräver 17 redigeringar .
MobileBASIC
Språkklass programmeringsspråk
Utförandetyp Tolkad
Framträdde i 2003
Författare David J First
Filtillägg _ .bas, .lis
Släpp
  • Telefonupplaga: 1.9.1 av kiriman & dzanis (senaste officiella - 1.92);
  • Desktop Edition: 2.3;
  • Android-version: 3.1
  • LITE för iOS: 1.2
Blivit påverkad Grundläggande
 Mediafiler på Wikimedia Commons

MobileBASIC  är ett tolkat programmeringsspråk som används för MIDP-2.0- aktiverade mobiltelefoner . Gör att du enkelt kan skriva program direkt på din Android-telefon eller surfplatta. Det finns i 4 implementeringar: som en programmeringsmiljö för en dator, som en vanlig MIDlet för mobila enheter, som en applikation för enheter som kör Android och iOS .

Språket dök upp 2002 tack vare programmeraren David Firth som ett  enkelt och bekvämt verktyg för att utveckla mjukvara för mobiltelefoner.

Officiella versioner är numrerade enligt följande:

MobileBASIC Phone Edition

Mobilversionens syntax är mycket lik de gamla BASIC- versionerna . För det första används obligatorisk radnumrering, och för det andra används inte användardefinierade procedurer och funktioner (GOSUB-kommandot används istället). Här är en exempelkod i MobileBASIC:

10 INPUT "Ange ditt namn" , NAMN $ 20 SKRIV UT "Hej, " + NAMN $ + "!" 30 OM INTE INKEY ( 0 ) TILL 30 40 END

Från rad 30 kan man se att tangentbordet är genomtänkt på detta språk. Men med andra viktiga telefonfunktioner: formulär och canvas , är allt mycket värre. Låt oss börja med att du inte får plats med mer än en kontroll på ett formulär. För det andra använder duk och formulär på de flesta telefoner olika kodningar. Och det som ser naturligt ut på duken, "Hej, värld!", På formuläret kan det förvandlas till krakozyabry (korrigerat i de senaste versionerna). Dessutom, på grund av dubbeltolkning (programkod av Java-tolken och tolken själv via Java -maskinen ), exekveras koden relativt långsamt. Detta språk är dock ganska lätt att lära sig och en bra introduktion till grunderna i programmering. Från och med version 1.8.4 började Mumey utveckla projektet, som ett resultat av vilket programmet fick ett användarvänligt gränssnitt, flera nya kommandon och möjligheten att skapa fullfjädrade Java-applikationer som fungerar utan ett programmerarskal (denna funktion fanns där tidigare, för detta ändamål var det nödvändigt att packa färdig bas -fil (Autorun.bas) och resurser i arkivet med programmeraren själv). Den senaste faktiska versionen var 1.8.6.2 av anNNiMON . David Firth själv släppte i december 2010 en ny version, 1.9, men alla ändringar bestod bara i att lägga till POWER-funktionen för bråktal, annars förblev allt som i version 1.8, så utvecklare fortsätter att använda modifieringar [1] . Om version 1.9 släpptes tillsammans med källkoden, stängs 1.91 igen och kostar 4,99 £. Därför att Källkoderna för Mumey-modifieringen går förlorade, 2013 återställde utvecklaren under smeknamnet kiriman dem framgångsrikt med hjälp av en dekompilator och officiella sorteringar. Således återföddes BASIC till version 1.9.1 av kiriman & dzanis  (otillgänglig länk) . Många buggar har fixats i den, såsom montering i en MIDlet och öppnande lis, bas-filer på Nokia-telefoner och 5 nya kommandon har lagts till, varav det viktigaste är REPAINT. Tolkningshastigheten har ökats genom att ändra basformatet (tidigare versioner av BASIC stöder det inte) och genom att skriva om arbetet med variabler av typen Float. Tidigare emulerades flyttalstal – det var för långsamt. När det gäller kodlagring kan MobileBASIC lagra programkällkoder i två versioner - som en vanlig textfil, eller som en bytekod. I det första fallet är det vanligt att ge filen filändelsen .lis (från kommandot BASIC LIST), i det andra - .bas.

BAS-filstruktur och kodobfuskering

Möjligheten att fritt packa upp ett jar-arkiv och öppna valfri programmodul med MobileBASIC själv oroar programmerare. När allt kommer omkring kan vem som helst titta på och ändra koden, och utan större ansträngning. I början av 2010 dök en BAS-filobfuscator upp. Hans jobb var att skriva över namnen på de variabler som användes i programmet. Detta var drivkraften att studera bytekodens struktur. En tid senare flyttade obfuscatorn till en ny nivå - nu "förstör" den filen på ett sådant sätt att den inte kan öppnas med MobileBASIC-verktyg, samtidigt som den sammansatta koden fungerar absolut. Hittills har strukturen avslöjats helt, och används redan - en BAS=>LIS-dekompilator och en LIS=>BAS-kompilator har gjorts, en annan applikation är möjlig - en tolk som förstår fler funktioner.

Versionshistorik

Version Ändringar
1.8.0 Textgränssnitt, ingen möjlighet att arbeta med FS
1.8.3 Lade till möjligheten att arbeta med FS , lade till möjligheten att arbeta i helskärmsläge
1.8.4, 1.8.5, 1.8.6 Lade till ett användarvänligt gränssnitt, möjligheten att skapa en MIDlet utan manuell paketering
1.8.6 för Miles Fixat arbete på 5:e generationens Sony Ericsson-telefoner
1.8.6.1 Fixat arbete med formulär på 5:e generationens Sony Ericsson-telefoner
1.8.6.2 Fixat arbete på 5:e generationens Sony Ericsson-telefoner
1.9 Officiell version daterad 28 december 2010. Källkoden har blivit tillgänglig. Mindre ändringar från 1.8.
1,91 Officiell version daterad 6 november 2011. Stängd källkod. Mindre ändringar.
1.9.1 av kiriman & dzanis [2] Buggar fixade.

Tillagda kommandon: REPAINT; RAND(MIN%,MAX%); ALPHAGEL GEL$,A%; COLORALPHAGEL GEL$,A%,R%,G%,B%; SENDMSMS(NUMBER$,TEXT$)

1.9.1 av vlavolk&garfield63 [3] vlavolk användarändringar:

1) Lade till nya funktioner: ljud, ljudinfo, soundsset, drawpolygon, fillpolygon, shot, gelzoom, gelrot, getcolor, pointpres, pointdrag, pointhold, pointx, pointy, lower, upper, indexof, vibr.

2) Fixade buggar med utskrift och menuitem under körning.

3) Fixade buggar med att få diskar i readdir$'e och med att analysera från sträng till float.

4) Nu ger vissa funktioner (readdir$, val, input) BASIC-fel.

5) Nu kan geler laddas ner från Internet!

6) Ett nytt argument har lagts till playtone - volym!

7) Fixade en bugg med rand.


Ändringar av användaren garfild63:

1) Omdöpt nedre och övre till lägre $ och övre $, eftersom de returnerar strängvariabler.

2) Omdöpt pointpres till pointpress, eftersom det finns inget ord pres på engelska!

3) Fixade en bugg med getcolor och lade till en förkortning (gc) till den.

4) Principen för drift av skott har ändrats: nu sparar den inte hela skärmen, utan bara en del av skärmen.

1.9.1.1 av garfield63 [4] 1) Lagt till 3 nya funktioner - inputtext, printtext och btsh$. Läs informationen om dem i hjälpen (i filerna Files.txt och Bluetooth.txt i Help.zip-arkivet).

2) Lade till arbete med Bluetooth (fortfarande instabil, det finns buggar).

3) En bugg har åtgärdats, där, när man ritade en polygon fylld med färg, ritades ytterligare en horisontell linje som delade den på mitten.

1.9.1.2 av garfield63 [5] 1) Fast btsh$-funktion - nu kan BlueTooth användas utan buggar.

2) Lade till arbete med accelerometern.

3) Lade till funktionerna IMEI$(0) och GELMIRROR(GEL$).

4) Fixade buggar i trigonometriska funktioner i gradberäkningar (om du nu skriver "10 DEG : PRINT SIN(90) : REPAINT", kommer "1.0" att visas)

5) Arbetet med FILLPOLYGON-funktionen har fixats.

6) Lade till tangentbord på skärmen. För att aktivera det måste du ersätta "On-Screen-Keypad: no" med "On-Screen-Keypad: yes" i manifestet.

7.) Fixad och uppdaterad hjälp. Help.zip-arkivet innehåller programmet Program1.pas, som i PascalABC samlar in textfiler till en binär.

Det andra utvecklingsverktyget för telefonapplikationer är MobileBASIC-utvecklingsmiljön. Men koden som är skriven i den skiljer sig mycket från den mobila versionen av språket. Nu ser det mer ut som Quick Basic. Radnummer har blivit valfria etiketter, programmet delas enkelt upp i moduler. Huvudproceduren är Main (Sub Main()). Men det förblir fortfarande ett tolkat språk, om än snabbare i utförande. Lade till arbete med kartor och brickor , för vilka det finns inbyggda redigerare. I allmänhet är båda varianterna av utvecklingsmiljön väl skräddarsydda specifikt för att skapa spel, vilket framgår av förmågan att arbeta med grafiska element (geler) och sprites .

Utvecklingsmiljön innehåller, förutom kodredigeraren med syntaxmarkering, flera mer specialiserade redigerare: en brickredigerare (Tile Editor), en kartredigerare (Map Editor), ett verktyg för bildändringsstorlek (Image Resize), en färgväljare (Color) Väljaren) och en inbyggd emulator. Programmet är skrivet i Java SE , vilket gör att det kan köras på alla operativsystem som har en virtuell Java-maskin.

Den senaste versionen är 2.3 från 8 november 2011 [6] .

MobileBASIC för Android

I juni 2011 släpptes nästa version av utvecklingsmiljön. Den här gången - för Android-plattformen. Syntaxen är mycket lik den för PC-versionen, med stöd för flerdimensionella arrayer, användardefinierade rutiner och funktioner. Programmet innehåller en praktisk språkhjälp och mer än 100 exempel på användning av olika funktioner i språket [7] . Det finns två versioner av utvecklingsmiljön: gratis (nackdelar - visar annonser [8] ) och full, tillgänglig till ett pris av £2,99. Den senaste versionen är 4.9.11.

MobileBASIC LITE för iOS

2012 expanderade MobileBASIC till en annan plattform, iOS. Den nya versionen heter MobileBASIC LITE. Den innehåller många funktioner som är specifika för iOS-enheter, som positionering, arbete med accelerometern och gyroskopet, stöd för inbyggda kartor, arbete med databaser och mycket mer [9] . En detaljerad språkreferens med exempel är inbyggd i utvecklingsmiljön.

JsMobileBasic

JsMobileBasic - JavaScript-bibliotek som implementerar MobileBASIC-mekanik från MobileBasicPRO-communityt. Den använder HTML5 Canvas internt, men det finns SDL2-implementationer. Senare implementeringar av biblioteket släpptes för C++ , Node.js och Python .

Uppdaterad: Den 25 januari 2018 öppnades JsMobileBasic-källor [10] och kan nu ses av vem som helst [11] . Andra källor till projekt från MobileBasicPRO-communityt finns i deras GitHub-förråd [12]

Anteckningar

  1. MobileBASIC 1.91 Hemsida (nedlänk) . Hämtad 29 september 2011. Arkiverad från originalet 27 september 2011. 
  2. Mobile Basic 1.9.1 av kiriman & dzanis | annimon.com . annimon.com. Hämtad 11 april 2020. Arkiverad från originalet 15 januari 2022.
  3. MobileBasic 1.9.1 av vlavolk&garfild63 | annimon.com . annimon.com. Tillträdesdatum: 11 april 2020.
  4. MobileBASIC 1.9.1.1 av garfild63 | Waper . waper.ru. Hämtad: 11 april 2020.  (inte tillgänglig länk)
  5. MobileBASIC 1.9.1.2 av garfild63 | Waper . waper.ru. Hämtad: 11 april 2020.  (inte tillgänglig länk)
  6. Hemsida för MobileBASIC Desktop Edition (nedlänk) . Hämtad 29 september 2011. Arkiverad från originalet 27 september 2011. 
  7. MobileBASIC för Android-hemsida (nedlänk) . Hämtad 29 september 2011. Arkiverad från originalet 27 september 2011. 
  8. MobileBASIC för Android 3.1 på Android Market . Hämtad 11 december 2011. Arkiverad från originalet 16 augusti 2011.
  9. MobileBASIC LITE på iTunes . Hämtad 29 september 2017. Arkiverad från originalet 28 mars 2017.
  10. JsMobileBasic (JsMB) öppen källkod! | Vkontakte . m.vk.com. Tillträdesdatum: 10 april 2020.
  11. JsMB | Det huvudsakliga JsMobileBasic-förrådet | Github . — 2018-03-13. Arkiverad 27 november 2020.
  12. MobileBasicPRO | Github  (engelska) . GitHub. Tillträdesdatum: 10 april 2020.

Se även

Länkar