MobileBASIC | |
---|---|
Språkklass | programmeringsspråk |
Utförandetyp | Tolkad |
Framträdde i | 2003 |
Författare | David J First |
Filtillägg _ | .bas, .lis |
Släpp |
|
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:
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 ) GÅ TILL 30 40 ENDFrå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.
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.
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.
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] .
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.
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 - 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]
BASIC | Dialekter av programmeringsspråket|
---|---|
Klassisk |
|
övergångsperiod |
|
processuella |
|
Objekt |
|
Mobil |
|
Trösta |
|
Programmeringsspråk | |
---|---|
|