Vinnaren i pepparkakshustävlingen!
  • 3
  • 4
2016-10-20, 10:31
  #37
Medlem
MeanMEs avatar
Citat:
Ursprungligen postat av DrSvenne
Om du sitter ner och kokar ihop någon OO-kod vilken som helst och bestämmer dig för att köra den så kan du se det som att du stoppar in koden i en logisk maskin som utför kommandona och presenterar utdatat.

Denna logiska maskin är alltså detsamma som kompilatorn (interpretern*) plus länkaren + OS + CPUn + dess kringmiljö.

Assemblern har mycket riktigt knappt några abstraktionsbegrepp alls, annat än symboliska adresser och symboliska variabler. Att göra en OO-Assembler är ju bara ett låtsasprojekt som aldrig kan bli av, eftersom man lämnar ide'n med vad en assembler är för något.

Fördelen med assembler är ju att man kan ju göra snillrika optimeringar som ingen kompilator klarar av.
LOL
Man skall aldrig säga att något aldrig kan bli av...
För det är redan gjort mannen, för drygt 10 år sedan.


Kolla in HLA, High Level Assembler.

http://www.plantation-productions.co...AReference.pdf
HLA referensen, sid 222.
HLA Classes and Object-Oriented Programming.
Citera
2016-10-21, 07:22
  #38
Medlem
Citat:
Ursprungligen postat av MeanME
LOL
Man skall aldrig säga att något aldrig kan bli av...
För det är redan gjort mannen, för drygt 10 år sedan.


Kolla in HLA, High Level Assembler.

http://www.plantation-productions.co...AReference.pdf
HLA referensen, sid 222.
HLA Classes and Object-Oriented Programming.

Ja jag minns att man gjort en del maskinnära programmering förr, mycket oneline IFs och gotos, usch, Maskinnära programmering också i UNIX, det är rätt så annorlunda att använda en assembler jämfört med C/C++ Jo, jo jag hade det lite i åtanke, Många tack för tipset, den manualen är på drygt 500 sidor, Det finns många läsvärda sidor som är jäkligt bra skrivna, särskilt gillar jag tex förklaringar till VTABLEs - Men tex så saknas överlagring av operatorer så man kan ju inte påstå att den har samma abstraktionsnivå som C++ har.

Men om vi ser det så här, Skriver du ett program i C eller C++ så kan du förvänta dig att det ska gå att kompilera* och köra på en mängd olika plattformar, OSes. Så är det inte för HLA, den assemblern är byggd uteslutande för x86, många sätt att programmera med HLA är beroende av x86-arkitekturen helt och hållet.

En HLA-assemblerad exe kan bara köras på x86 eller dess motsvarigheter.

Man kan se abstraktionstänkandet i C/C++ som ett hinder som inte kan överbryggas i ngn assembler, inte som jag ser det.

Förutsatt att man kan lära ut HLA i rätt så stor omfattning så skulle man kunna få en indikation på om hur lättlärt HLA är och hur länge eleverna arbetar med uppgifterna,

För de som skrivit enbart C/C++-kod kan det bli svårt för dem att sätta sig in i någon assembler överhuvudtaget, det är inte självklart för dem att se tex C-kod kompilerad till asm-kod och där se likheterna.

HLA verkar dock vara ett så bra försök att den bör vara en mall för framtida assemblers, den behöver naturligtvis underhållas och byggas ut med nyare CPU-modeller mm,

Hittade du några bra kapitel i HLA ? Jag har inte hunnit läsa hela ännu

* Förutsatt att det finns en fungerande kompilator förstås.
Citera
2016-10-21, 10:09
  #39
Medlem
MeanMEs avatar
Citat:
Ursprungligen postat av DrSvenne
Ja jag minns att man gjort en del maskinnära programmering förr, mycket oneline IFs och gotos, usch, Maskinnära programmering också i UNIX, det är rätt så annorlunda att använda en assembler jämfört med C/C++ Jo, jo jag hade det lite i åtanke, Många tack för tipset, den manualen är på drygt 500 sidor, Det finns många läsvärda sidor som är jäkligt bra skrivna, särskilt gillar jag tex förklaringar till VTABLEs - Men tex så saknas överlagring av operatorer så man kan ju inte påstå att den har samma abstraktionsnivå som C++ har.

Men om vi ser det så här, Skriver du ett program i C eller C++ så kan du förvänta dig att det ska gå att kompilera* och köra på en mängd olika plattformar, OSes. Så är det inte för HLA, den assemblern är byggd uteslutande för x86, många sätt att programmera med HLA är beroende av x86-arkitekturen helt och hållet.

En HLA-assemblerad exe kan bara köras på x86 eller dess motsvarigheter.

Man kan se abstraktionstänkandet i C/C++ som ett hinder som inte kan överbryggas i ngn assembler, inte som jag ser det.

Förutsatt att man kan lära ut HLA i rätt så stor omfattning så skulle man kunna få en indikation på om hur lättlärt HLA är och hur länge eleverna arbetar med uppgifterna,

För de som skrivit enbart C/C++-kod kan det bli svårt för dem att sätta sig in i någon assembler överhuvudtaget, det är inte självklart för dem att se tex C-kod kompilerad till asm-kod och där se likheterna.

HLA verkar dock vara ett så bra försök att den bör vara en mall för framtida assemblers, den behöver naturligtvis underhållas och byggas ut med nyare CPU-modeller mm,

Hittade du några bra kapitel i HLA ? Jag har inte hunnit läsa hela ännu

* Förutsatt att det finns en fungerande kompilator förstås.
Jag tittade på den å företagets vägnar då man alltid vill veta vad som finns.
Men då ingen organisation stod bakom den, då i alla fall, var valet och alternativen givna. Går liksom inte att skriva kommersiella tillämpningar i ett språk man inte vet underhålls, utvecklas och åtgärdas om något går åt skogen.

Men vill man lära sig assembler så tycker jag det verkar vara ett utmärkt språk.
Den har ju en ganska gedigen manual och det behöver man om man vill pröva på det.

Sedan skall man väl ta HLA för vad det är det är i mångt och mycket en kuriositet.
Citera
2016-10-23, 04:44
  #40
Medlem
Citat:
Ursprungligen postat av MeanME
Jag tittade på den å företagets vägnar då man alltid vill veta vad som finns.
Men då ingen organisation stod bakom den, då i alla fall, var valet och alternativen givna. Går liksom inte att skriva kommersiella tillämpningar i ett språk man inte vet underhålls, utvecklas och åtgärdas om något går åt skogen.

Men vill man lära sig assembler så tycker jag det verkar vara ett utmärkt språk.
Den har ju en ganska gedigen manual och det behöver man om man vill pröva på det.

Sedan skall man väl ta HLA för vad det är det är i mångt och mycket en kuriositet.

Nej, det är ju klart att man måste ta administrativa hänsyn när man ska investera en mängd mantimmar i något som sen inte kan vidareutvecklas, man får allt se till att ta hem hela manualen och spara den lokalt, för rätt som det är så är webbsidan nedtagen

Jag vet inte om jag kan se några uppenbara fördelar med HLA, Såklart att assemblers gör ett bra jobb när det gäller tex kryptering, hashsummeberäkningar, zipkodning och liknande vad gäller optimering. Men C/C++ är nästan lika bra på det, åtminstone för de flesta "stora" (= mest använda) kompilatorerna, sen så har det ju mycket med libben att göra också, det kan ju bli asdrygt att skriva sådana i HLA - och man vet inte i förväg om hur pass mycket besparingar man kan göra i memory footprint och CPU-cykler heller.

Just osäkerheten om att avgöra eventuella besparingar i sådana här situationer gör det svårt att motivera en stor arbetsinsats, Det är nästan alltid billigare att köpa in snabbare hårdvara, tex en ny CPU med fler kärnor och mycket större CPU-cache mm, elr DDR4-minne osv... Man vet ju redan i förväg vad man får. i besparing på ett ungefär iallafall...
Citera
2016-12-24, 19:15
  #41
Medlem
MIPS är ett bra sätt att lära sig programmera assembly. Jag kan rekommendera simulatorn MARS
MARS MIPS Simulator
Citera
2017-02-04, 20:42
  #42
Medlem
Citat:
Ursprungligen postat av jolt2
MIPS är ett bra sätt att lära sig programmera assembly. Jag kan rekommendera simulatorn MARS
MARS MIPS Simulator

Bara assembler är nog väl svårt för de flesta. C och C++ har ju flera alternativ.
Om du avslutar kompileringen med -S får du asm-koden.
Prova tex med några ex från RosettaCode!
Citera
  • 3
  • 4

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback