Great Cow BASIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Glenn
Inlägg: 36780
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Inlägg av Glenn »

stekern skrev:
AndLi skrev:C är inte ett lågnivåspråk.
Nuförtiden (i alla fall om man pratar om datorer) får det nog anses vara det
Absolut INTE.

Jag tror inte du förstår skillnaden mellan hög och lågnivåspråk om du gör det uttalandet.
Användarvisningsbild
Glenn
Inlägg: 36780
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Inlägg av Glenn »

AndersG skrev:
..Men folk som programmerar i asm på en PC är extremt sällsynta av nån anledning.
Inte alls, mycket skrivs fortfarande i assembler, även på PC. Drivrutiner och allting som är hårdvarunära eller tidskritiskt. Ingen så använder man det programmeringsspråk som passar bäst för uppgiften.
Nej, VÄLDIGT lite för en normal PC skrivs i asm idag, inte ens drivrutiner som skulle kunna vinna mycket på det skrivs normalt sett i asm.

Jag skulle gissa att det är som vanligast hos folk som kodar 4k demos :)


..Ja och så embedded då, men det inkluderas ju inte i "En vanlig PC"
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

Egentligen kvittar det hela för allt blir assembler i alla fall. Man kan direkt läsa assembler ur en hexfil om man så önskar.

Programmerar man då i assembler och har programmet brevid så ser man kommentarerna till denna kodrad, detta är omöjligt/svårt i annat språkval då i vissa fall en harrang skapas av en del kommandon.

Som tidigare sagt många gånger(av mig) är inte assembler svårare att lära sig än BASIC, förutsatt att man inte är insnöad totalt på BASIC. Kommandona är få och finns VÄL dokumenterade. Utöver detta är det väldigt lite man behöver kunna. Mycket handlar om kunskapen om BIT och byte.

Givet också att man kan göra program och även avancerade såna i BASIC det är åtminstone inte jag helt ovarse om. Funkar ett program till en PIC så funkar det oavsett programspråket som användets vid utvecklingen det tror jag alla är överens om.

Det jag vänder mig mot är att man allt för mycket tas iväg från hårdvaran och aldrig lär sig vad man egentligen gör. Detta kan leda till helt oanade problem när man går utanför vad kommandona är tänkta för.

Program kan inte bli mindre/snabbare än de man gör i assembler (förutsatt att programmeraren är insatt). Detta kan vara kritiskt när man kräver snabbhet/respons från sin µc. I högnivå kan man inte räkna raderna lika enkelt som i ASM. Fast vissa rader blir faktist några fler även i assembler :)

PC≠µc det är lite äpple och päron över det hela. Jag har inte sett någon som kopplar något direkt till processorn i en PC utan man håller sig i periferienheterna.


Tror jag droppar det hela nu då vi är helt offtopic och trådskaparen redn gjort sitt val vad jag förstår.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

Nej, VÄLDIGT lite för en normal PC skrivs i asm idag, inte ens drivrutiner som skulle kunna vinna mycket på det skrivs normalt sett i asm.
Bestäm dig.. Är det "extremt" eller "väldigt"? ;)

Det var dock inte poängen. Även om jag håller med om att mycket som av okunnighet skrivs i C/C++ skulle vinna på att skrivas i Assembler.

Jag misstänker att det absolut vanligaste språket på PC/Windows är VBA.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

Glenn skrev:
stekern skrev:
AndLi skrev:C är inte ett lågnivåspråk.
Nuförtiden (i alla fall om man pratar om datorer) får det nog anses vara det
Absolut INTE.

Jag tror inte du förstår skillnaden mellan hög och lågnivåspråk om du gör det uttalandet.
Jo, jag förstår mycket väl skillnaden mellan hög och lågnivåspråk.
Det är en definition på abstraktionsnivån för språken.
Då har vi följande hierarki:
.NET/Java osv
C++
C
Assembler
här kommer C ganska långt ner i listan som du ser.

Men visst, det traditionella användandet av lågnivåspråk varit att allt med högre abstraktionsnivå än assembler har varit högnivå.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Med 30 år med datorer i olika former, så måste jag säga att
termerna låg-/hög-nivåspråk känns lite underliga. Jag kan inte
alls minnas att det har varit en vanligt förekommande uppdelning.

En indelning som däremot har varit vanligt förekommande är 2GL, 3GL
och 4GL. ASM är ett 2GL, medan alla andra här nämnda språk ligger
inom 3GL. MS's "Visual" språk ligger någonstans mellan 3GL och 4GL.

Låg-/hög-nivå *programmering*, däremot, känner jag igen, men det
är något lite annorlunda. Det är en uppdelning som har sin grund i vad
det är man vill åstakomma, mer än i själva verktyget.
Lågnivåprogrammering kan vara t.ex hårdvarudrivers, (vissa delar av) grafikrutiner,
centrala delar av operativsystem (kernels) och databashanterare o.s.v.

Vissa språk är specifikt för det ena eller det andra, vissa kan med varierande
framgång användas inom båda områderna. C, som har nämnts här, är kanske
det bästa exemplet på ett språk som används med framgång inom båda
områderna. Fortran, COBOL, BASIC och många av de moderna verktygen
ligger nästan helt inom högnivåprogrammeringen. Assembler ligger
nästan helt inom lågnivån.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Inlägg av stekern »

Mycket bra skrivet sodjan,
det jag alltså försökte säga när den här tråden spårade om möjligt ut ännu mer var att "assembler och C är språk som är anpassade för lågnivåprogrammering, dvs hårdvarunära programmering"
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31535
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

I våra läroböcker från slutet av 70-talet stod det att lågnivåspråk är språk som har direkt koppling till hårdvaran/minnet, eller vad man ska säga. Maskinkod är så nära man kan komma, men det är väl ingen som sitter och knackar ettor och nollor idag... Assembler är där ettorna och nollorna bakas ihop till bytes och words och uttrycks med bokstäver istället, mnemonics.

Alla språk som behöver en kompilator för att generera maskinkod/assembler är högnivåspråk!
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

Alla språk som behöver en kompilator för att generera maskinkod/assembler är högnivåspråk!
Ja, sedan man man ju haka upp sig på vad då direktiv/makron gör ;) Gör BANKSEL PIC assembler till ett högnivåspråk? Men då kan man lika gärna räkna änglar på en nålspets.

Jag tror att en del av förvillelsen kommer ifrån begrepp som:

Högnivå/lågnivåspråk som oftast betecknar hur mycket underliggande kod (assembler eller p-kod) som genereras av en rad.

Maskinnära, hur nära koden är den egentliga maskinen, devis samma som ovan. Eller kanske hur lämpat för maskinnära programmering språket lämpar sig. Även där har man en skala från Assembler (utmärkt) till Java (inte alls).

3GL/4GL/5GL etc, vilket eg började som en marknadsföringsterm, se tex: http://en.wikipedia.org/wiki/4GL
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31535
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Hmm ja, det är ju skillnad på assembler och assembler. Den jag tänker på och använde sist består endast av 3-staviga mnemonics och allt man skriver hamnar direkt i minnet och behöver inte kompileras alls. Det går ju ibland att ha programmet igång och samtidigt ändra i koden. ;)
Det är ju lite svårt med moderna datorer där direkt minnesaccess på det viset inte funkar.
En assembler med egendefinierade variabler, labels, makron mm. måste ju kompileras innan det funkar, och skulle enligt gamla deviser klassas som högnivåspråk...
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

MM:I Fallet MPASM så gör den ju inte om språket till nåt annat typ c-->asm utan det den egentligen gör är att tex placera koden i minnet och labels översätts till goto 0xline osv.

Man kan ju likaväl skriva i notepad men manuell hantering av labels osv tillför inget extra till programmet utan hjälper enbart programmeraren att göra saker mer strukturerat. Det är ju liksom lite trist att man har "goto 0xline och sen ska man in med en rad kod efter första goto vilket medför att man måste ändra en massa goto i programmet.

Tex säger ju MOVWF ADCON1 mer än MOVWF 0x1f och absolut mer än 009F. Dock kan jag som assemblerprogrammerare enkelt förstå den senare(med hjälp av databladet) vilket torde vara svårare för en BASIC kodare.

Kan man göra saker enklare för programmeraren utan att förlora något så har ju bara språket i sig vunnit på det hela. Det är ju ingen som hindrar mig från att koda direkt i maskinkod eller opkoder direkt heller.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31535
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

AndersG: jösses... folk diskuterar alltså det där... Nåja :D

v-g: Ja jo... det är sant.


Men iaf, ska man pyssla med MP-BASIC så borde man nog (enligt mig) satsa på något som medger strukturell uppbyggnad. Såvida man inte snabbt ska knåpa ihop nånting man ska ha färdigt samma dag. Det går fort med sk spaghettiprogrammering, men blir också mycket snabbt oöverskådligt och ohanterbart, som redan sagts.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Great Cow BASIC

Inlägg av Swech »

Man kan väl göra en jämförelse med en bil
Det är ju möjligt att köra från Göteborg till Stockholm utan att veta att bilen har mer än 1 växel.
Jag kan ta mig dit endast körandes på 1an och javisst fram kommer jag.
Likaså kan jag köra från Göteborg till Stockholm via Malmö och trots allt komma fram.

Samma gäller inom programmering. Jag kan helt ignorera hur processorn egentligen fungerar och
skriva program som endast utgår ifrån vad jag vill att programmet skall göra.
På en PC med flera GHz och oerhört mycket minne mm så är detta inget problem i dagsläget.
Det går ändå så fort att man kan "köra från Göteborg till Stockholm via NewYork -Sidney" utan att det märks.

Skall man köra PIC/AVR mm så bör man dock veta hur processorerna verkligen jobbar.
Då kan man skriva program som utnyttjar de små resurserna som finns i dessa till max.

Nu är det ju många som har detta som hobby så vill man inte / kan inte lära sig assembler
eller av andra orsaker vill köra Basic så är det ju inga problem med detta, kör vad ni tycker passar er.

Själv kör jag endast Assembler.

Swech
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Great Cow BASIC

Inlägg av AndersG »

Själv kör jag endast Assembler.
För all programmering? :)
Skriv svar