tietokonenohjelma, joka muuttaa itseään

Onko taipuvaisuutta nörttiyteen? Saa esittää omia nörtti-projekteja
SHT
Reactions:
Viestit: 658
Liittynyt: 29 Marras 2022, 21:05

tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja SHT »

Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
AimoJortikka
Reactions:
Viestit: 3208
Liittynyt: 11 Joulu 2022, 13:14

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja AimoJortikka »

SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Fortranilla? Oletko varma että fortranilla? Itse olen tehnyt vastaavan assemblerilla kyllä ja sillä se on aika helppoa, jos vain ymmärtää miten muistiosoitteet ja pointterit toimivat. C-kielelläkin tuon onnistuu tekemään, en kyllä suosittele. Kun en suosittele assemblerillakaan. Kikkailua, ei kaupalliseen tuotantoon. Mutta noita tehtiin joskus silloin kun tietokoneen muisti oli todellinen rajoitus. Mutta että fortranilla? Minä tunnen fortrania huonosti, mutta jos siinä on mekanismi, jolla voi muokata suoria muistiosoitteita niin tuo on mahdollista. Muuten kyllä ei. Tosin fortranissa on fortran-kääntäjä, joka kääntää sen ohjelmoijan kirjoittaman koodin assembleriksi. Niin että ihan helposti ei onnistune?
Eusa
Reactions:
Viestit: 1509
Liittynyt: 07 Joulu 2022, 12:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja Eusa »

SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Silloin joskus oli alkeellisia Sharp-taskutietokoneita ihan surkean vähäisellä Basic-ohjelman tallennustilalla. Esim. Yatzy-peliä en saanut mahtumaan muuten kuin laittamalla ohjelman puukottamaan omaa koodiaan kesken ajon.

Silloin oli moni asia mahdollinen, jota nykyiset ohjelmointikielet rajoittavat (toki syystä).
Hienorakennevakio vapausasteista: (1+2¹+3²+5³+1/2¹*3²/5³)⁻¹ = 137,036⁻¹
Eusa
Reactions:
Viestit: 1509
Liittynyt: 07 Joulu 2022, 12:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja Eusa »

AimoJortikka kirjoitti: 29 Joulu 2023, 11:19
SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Fortranilla? Oletko varma että fortranilla? Itse olen tehnyt vastaavan assemblerilla kyllä ja sillä se on aika helppoa, jos vain ymmärtää miten muistiosoitteet ja pointterit toimivat. C-kielelläkin tuon onnistuu tekemään, en kyllä suosittele. Kun en suosittele assemblerillakaan. Kikkailua, ei kaupalliseen tuotantoon. Mutta noita tehtiin joskus silloin kun tietokoneen muisti oli todellinen rajoitus. Mutta että fortranilla? Minä tunnen fortrania huonosti, mutta jos siinä on mekanismi, jolla voi muokata suoria muistiosoitteita niin tuo on mahdollista. Muuten kyllä ei. Tosin fortranissa on fortran-kääntäjä, joka kääntää sen ohjelmoijan kirjoittaman koodin assembleriksi. Niin että ihan helposti ei onnistune?
Saattoihan olla Fortran-debuggeri, jossa annettu tuki koodinmuokkaus-scripteille - en tiedä. Sharpin Basic-tulkissa asia oli käsittääkseni hoidettu siihen tyyliin.

Joo, Vicissä ja C64:ssä sekä Amstradissa, jollaisen omistin, piti pokettaa assemblerina, jos halusi kajota ajettavaan koodiin; riski saada tietty juntturaan...
Hienorakennevakio vapausasteista: (1+2¹+3²+5³+1/2¹*3²/5³)⁻¹ = 137,036⁻¹
Eusa
Reactions:
Viestit: 1509
Liittynyt: 07 Joulu 2022, 12:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja Eusa »

Bard.Google kertoo:

Fortran 77:ssä lisättiin uusi ominaisuus, joka tunnettiin nimellä INTRINSIC. INTRINSIC-lauseke määritti, että funktio oli sisäänrakennettu funktio, joka oli kirjoitettu C-kielellä. Tämä mahdollisti aliohjelman kirjoittamisen ja ajamisen ohjelman suorituksen aikana.

Fortran 90:ssä INTRINSIC-ominaisuuteen lisättiin uusi ominaisuus, joka tunnettiin nimellä MODULE. MODULE-lauseke määritti, että moduuli oli ryhmä funktioita, muuttujia ja muuttujaryhmiä. Tämä mahdollisti aliohjelman kirjoittamisen ja ajamisen ohjelman suorituksen aikana ilman, että sitä tarvitsi kirjoittaa C-kielellä.
Hienorakennevakio vapausasteista: (1+2¹+3²+5³+1/2¹*3²/5³)⁻¹ = 137,036⁻¹
Eusa
Reactions:
Viestit: 1509
Liittynyt: 07 Joulu 2022, 12:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja Eusa »

Eusa kirjoitti: 29 Joulu 2023, 11:38 Bard.Google kertoo:

Fortran 77:ssä lisättiin uusi ominaisuus, joka tunnettiin nimellä INTRINSIC. INTRINSIC-lauseke määritti, että funktio oli sisäänrakennettu funktio, joka oli kirjoitettu C-kielellä. Tämä mahdollisti aliohjelman kirjoittamisen ja ajamisen ohjelman suorituksen aikana.

Fortran 90:ssä INTRINSIC-ominaisuuteen lisättiin uusi ominaisuus, joka tunnettiin nimellä MODULE. MODULE-lauseke määritti, että moduuli oli ryhmä funktioita, muuttujia ja muuttujaryhmiä. Tämä mahdollisti aliohjelman kirjoittamisen ja ajamisen ohjelman suorituksen aikana ilman, että sitä tarvitsi kirjoittaa C-kielellä.
Esimerkkien perusteella en kyllä vielä vakuuttunut, että olisi voinut ohjelmassa logiikalla runoillen rakentaa moduleita vaan olisivat esikirjoitettuja - mutta ketjun aloittajalle poimintoja muistin virkistämiseksi...
Hienorakennevakio vapausasteista: (1+2¹+3²+5³+1/2¹*3²/5³)⁻¹ = 137,036⁻¹
SHT
Reactions:
Viestit: 658
Liittynyt: 29 Marras 2022, 21:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja SHT »

AimoJortikka kirjoitti: 29 Joulu 2023, 11:19
SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Fortranilla? Oletko varma että fortranilla? Itse olen tehnyt vastaavan assemblerilla kyllä ja sillä se on aika helppoa, jos vain ymmärtää miten muistiosoitteet ja pointterit toimivat. C-kielelläkin tuon onnistuu tekemään, en kyllä suosittele. Kun en suosittele assemblerillakaan. Kikkailua, ei kaupalliseen tuotantoon. Mutta noita tehtiin joskus silloin kun tietokoneen muisti oli todellinen rajoitus. Mutta että fortranilla? Minä tunnen fortrania huonosti, mutta jos siinä on mekanismi, jolla voi muokata suoria muistiosoitteita niin tuo on mahdollista. Muuten kyllä ei. Tosin fortranissa on fortran-kääntäjä, joka kääntää sen ohjelmoijan kirjoittaman koodin assembleriksi. Niin että ihan helposti ei onnistune?
Muistikuvani on, että se tehtiin Fortranilla. Muita kieliä, joihin tutustuin olivat Pascal, assembler, Cobol ja Ada (vieläkö joku muistaa sen). Tein 80-luvulla useita ohjelmia, joissa piti vähentää muistinkulutusta.
SHT
Reactions:
Viestit: 658
Liittynyt: 29 Marras 2022, 21:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja SHT »

Eusa kirjoitti: 29 Joulu 2023, 11:25
SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Silloin joskus oli alkeellisia Sharp-taskutietokoneita ihan surkean vähäisellä Basic-ohjelman tallennustilalla. Esim. Yatzy-peliä en saanut mahtumaan muuten kuin laittamalla ohjelman puukottamaan omaa koodiaan kesken ajon.

Silloin oli moni asia mahdollinen, jota nykyiset ohjelmointikielet rajoittavat (toki syystä).
Ísä osti minulle tuollaisen Sharp-taskutietokoneen, jota ohjelmoitiin Basicilla. Se jäi avioerossa ex-miehelleni.
AimoJortikka
Reactions:
Viestit: 3208
Liittynyt: 11 Joulu 2022, 13:14

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja AimoJortikka »

SHT kirjoitti: 29 Joulu 2023, 11:56
AimoJortikka kirjoitti: 29 Joulu 2023, 11:19
SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Fortranilla? Oletko varma että fortranilla? Itse olen tehnyt vastaavan assemblerilla kyllä ja sillä se on aika helppoa, jos vain ymmärtää miten muistiosoitteet ja pointterit toimivat. C-kielelläkin tuon onnistuu tekemään, en kyllä suosittele. Kun en suosittele assemblerillakaan. Kikkailua, ei kaupalliseen tuotantoon. Mutta noita tehtiin joskus silloin kun tietokoneen muisti oli todellinen rajoitus. Mutta että fortranilla? Minä tunnen fortrania huonosti, mutta jos siinä on mekanismi, jolla voi muokata suoria muistiosoitteita niin tuo on mahdollista. Muuten kyllä ei. Tosin fortranissa on fortran-kääntäjä, joka kääntää sen ohjelmoijan kirjoittaman koodin assembleriksi. Niin että ihan helposti ei onnistune?
Muistikuvani on, että se tehtiin Fortranilla. Muita kieliä, joihin tutustuin olivat Pascal, assembler, Cobol ja Ada (vieläkö joku muistaa sen). Tein 80-luvulla useita ohjelmia, joissa piti vähentää muistinkulutusta.
Jos olet opiskellut Helsingin yliopistossa. Niin veikkaan että olet tuon harjoitustyön tehnyt Mixalilla, eräänlaisella assemblerilla. Tuo oli aikanaan valitettavaa todellisuutta jopa IBM-suurkoneissa, että muistisyistä jouduttiin jopa assembleria "virittämään" monellakin tavalla. Nimimerkillä kokemusta on. Siitäkin.
Eusa
Reactions:
Viestit: 1509
Liittynyt: 07 Joulu 2022, 12:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja Eusa »

SHT kirjoitti: 29 Joulu 2023, 11:56
AimoJortikka kirjoitti: 29 Joulu 2023, 11:19
SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Fortranilla? Oletko varma että fortranilla? Itse olen tehnyt vastaavan assemblerilla kyllä ja sillä se on aika helppoa, jos vain ymmärtää miten muistiosoitteet ja pointterit toimivat. C-kielelläkin tuon onnistuu tekemään, en kyllä suosittele. Kun en suosittele assemblerillakaan. Kikkailua, ei kaupalliseen tuotantoon. Mutta noita tehtiin joskus silloin kun tietokoneen muisti oli todellinen rajoitus. Mutta että fortranilla? Minä tunnen fortrania huonosti, mutta jos siinä on mekanismi, jolla voi muokata suoria muistiosoitteita niin tuo on mahdollista. Muuten kyllä ei. Tosin fortranissa on fortran-kääntäjä, joka kääntää sen ohjelmoijan kirjoittaman koodin assembleriksi. Niin että ihan helposti ei onnistune?
Muistikuvani on, että se tehtiin Fortranilla. Muita kieliä, joihin tutustuin olivat Pascal, assembler, Cobol ja Ada (vieläkö joku muistaa sen). Tein 80-luvulla useita ohjelmia, joissa piti vähentää muistinkulutusta.
Epäilenpä sinun käyttäneen Cobolia ajon aikaiseen koodin muuttamiseen - se oli muistaakseni tulkkikieli, eli vasta ajon aikana tapahtui kääntäminen konekieleen...
Hienorakennevakio vapausasteista: (1+2¹+3²+5³+1/2¹*3²/5³)⁻¹ = 137,036⁻¹
SHT
Reactions:
Viestit: 658
Liittynyt: 29 Marras 2022, 21:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja SHT »

AimoJortikka kirjoitti: 29 Joulu 2023, 12:06
SHT kirjoitti: 29 Joulu 2023, 11:56
AimoJortikka kirjoitti: 29 Joulu 2023, 11:19
SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Fortranilla? Oletko varma että fortranilla? Itse olen tehnyt vastaavan assemblerilla kyllä ja sillä se on aika helppoa, jos vain ymmärtää miten muistiosoitteet ja pointterit toimivat. C-kielelläkin tuon onnistuu tekemään, en kyllä suosittele. Kun en suosittele assemblerillakaan. Kikkailua, ei kaupalliseen tuotantoon. Mutta noita tehtiin joskus silloin kun tietokoneen muisti oli todellinen rajoitus. Mutta että fortranilla? Minä tunnen fortrania huonosti, mutta jos siinä on mekanismi, jolla voi muokata suoria muistiosoitteita niin tuo on mahdollista. Muuten kyllä ei. Tosin fortranissa on fortran-kääntäjä, joka kääntää sen ohjelmoijan kirjoittaman koodin assembleriksi. Niin että ihan helposti ei onnistune?
Muistikuvani on, että se tehtiin Fortranilla. Muita kieliä, joihin tutustuin olivat Pascal, assembler, Cobol ja Ada (vieläkö joku muistaa sen). Tein 80-luvulla useita ohjelmia, joissa piti vähentää muistinkulutusta.
Jos olet opiskellut Helsingin yliopistossa. Niin veikkaan että olet tuon harjoitustyön tehnyt Mixalilla, eräänlaisella assemblerilla. Tuo oli aikanaan valitettavaa todellisuutta jopa IBM-suurkoneissa, että muistisyistä jouduttiin jopa assembleria "virittämään" monellakin tavalla. Nimimerkillä kokemusta on. Siitäkin.
Olen opiskellut Helsingin yliopistossa, voi olla että tein ohjelman asseblerilla vaikka tuo Mixal ei muistu mieleen.
SHT
Reactions:
Viestit: 658
Liittynyt: 29 Marras 2022, 21:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja SHT »

Eusa kirjoitti: 29 Joulu 2023, 12:08
SHT kirjoitti: 29 Joulu 2023, 11:56
AimoJortikka kirjoitti: 29 Joulu 2023, 11:19
SHT kirjoitti: 29 Joulu 2023, 11:08 Muistan, kun 80-luvulla tein Fortran-ohjelman, joka kirjoitti oman koodinsa päälle ja siten muutti omaa toimintaansa. Kyse oli kurssin harjoitustyöstä. Mitenköhän minä sen tein.
Fortranilla? Oletko varma että fortranilla? Itse olen tehnyt vastaavan assemblerilla kyllä ja sillä se on aika helppoa, jos vain ymmärtää miten muistiosoitteet ja pointterit toimivat. C-kielelläkin tuon onnistuu tekemään, en kyllä suosittele. Kun en suosittele assemblerillakaan. Kikkailua, ei kaupalliseen tuotantoon. Mutta noita tehtiin joskus silloin kun tietokoneen muisti oli todellinen rajoitus. Mutta että fortranilla? Minä tunnen fortrania huonosti, mutta jos siinä on mekanismi, jolla voi muokata suoria muistiosoitteita niin tuo on mahdollista. Muuten kyllä ei. Tosin fortranissa on fortran-kääntäjä, joka kääntää sen ohjelmoijan kirjoittaman koodin assembleriksi. Niin että ihan helposti ei onnistune?
Muistikuvani on, että se tehtiin Fortranilla. Muita kieliä, joihin tutustuin olivat Pascal, assembler, Cobol ja Ada (vieläkö joku muistaa sen). Tein 80-luvulla useita ohjelmia, joissa piti vähentää muistinkulutusta.
Epäilenpä sinun käyttäneen Cobolia ajon aikaiseen koodin muuttamiseen - se oli muistaakseni tulkkikieli, eli vasta ajon aikana tapahtui kääntäminen konekieleen...
En muista ohjelmoineeni Cobolilla mitään. Fortranhan ei ole tulkkikieli, mutta Basic on.
SHT
Reactions:
Viestit: 658
Liittynyt: 29 Marras 2022, 21:05

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja SHT »

Tämän ketjun aihe tuli mieleeni YLE:n uutisesta
https://yle.fi/a/74-20066783
siinä sanotaan, että Voyager 1 lähetti sekavia viestejä ja tämä saatiin korjattua, kun selvisi, että se yritti lähettää datapaketteja käytöstä poistuneen tietokoneen kautta. Eli minun järkeni mukaan muutettiin ohjelmaa, jolla ohjattiin datan lähetystä.
AimoJortikka
Reactions:
Viestit: 3208
Liittynyt: 11 Joulu 2022, 13:14

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja AimoJortikka »

SHT kirjoitti: 29 Joulu 2023, 12:26 Tämän ketjun aihe tuli mieleeni YLE:n uutisesta
https://yle.fi/a/74-20066783
siinä sanotaan, että Voyager 1 lähetti sekavia viestejä ja tämä saatiin korjattua, kun selvisi, että se yritti lähettää datapaketteja käytöstä poistuneen tietokoneen kautta. Eli minun järkeni mukaan muutettiin ohjelmaa, jolla ohjattiin datan lähetystä.
Ohjelmaa voidaan muuttaa niin monella eri tavalla? Tavallisin tapa on päivitys. Käännetään ja asennetaan uusi versio. Tai sitten jos ohjelma on parametroitu, niin muutetaan parametreja. Aika harvinainen tapa on muuttaa ohjelmaa suoritusaikaisesti eli muokata konekielisiä käskyjä ohjelmalla itsellään ajon aikana. En tiedä miten avaruussysteemit toimivat, mutta saattaapa olla, että korjaus ei ole tehty jälkimmäisellä tavalla.
AimoJortikka
Reactions:
Viestit: 3208
Liittynyt: 11 Joulu 2022, 13:14

Re: tietokonenohjelma, joka muuttaa itseään

Viesti Kirjoittaja AimoJortikka »

SHT kirjoitti: 29 Joulu 2023, 12:20
AimoJortikka kirjoitti: 29 Joulu 2023, 12:06 Jos olet opiskellut Helsingin yliopistossa. Niin veikkaan että olet tuon harjoitustyön tehnyt Mixalilla, eräänlaisella assemblerilla. Tuo oli aikanaan valitettavaa todellisuutta jopa IBM-suurkoneissa, että muistisyistä jouduttiin jopa assembleria "virittämään" monellakin tavalla. Nimimerkillä kokemusta on. Siitäkin.
Olen opiskellut Helsingin yliopistossa, voi olla että tein ohjelman asseblerilla vaikka tuo Mixal ei muistu mieleen.
Helsingin yliopistossa oli aikanaan Mixal-kurssi, jonka yhtenä harjoitustehtävänä oli tehdä itse itseään muuttava ohjelma. En muista enää, että minä vuosina tuo kurssi oli, joskus 70-luvulla tai 80-luvulla. Mutta kun alan kehityksen vauhti on ollut mikä on ollut niin kurssit eivät suinkaan ole olleet samat vuodesta toiseen.

Tuossa
https://www.cs.helsinki.fi/kirjasto/sarja-b.html
on Mixal mainittu pariin otteeseen.
Vastaa Viestiin