Gadzira yako wega chirongwa chemutauro (I)

Iko kushanduka kwemitauro yekuronga

Mushure mekunyora chinyorwa chekutanga pa maitiro ekugadzira yako yega yekushandisa systemMumwe munhu akandiudza kana ndichigona kuita chinyorwa pa maitiro ekugadzira mutauro wechirongwa. Pakutanga handina kunyatsoteerera, asi ikozvino uye nedzimwe nzira ndakadzidza zvakawanda nezve kugadzirwa kwemitauro yekuronga. Saka ngatiitei mutauro wekutanga wepurogiramu, inokwenenzverwa zviri nyore mune mamwe mapurogiramu uye inoshanda nemuchina chaiwo watichagadzirawo. Nhasi tinofanirwa kugadzira muchina wakasarudzika chaiwo.

Iwe unogona kunge uri kushamisika: «Mushini chaiwo? "Asi hazvina kunyanya kuoma uye zvinoita kuti mapurogiramu adzokere shure?" Mukupesana, muchina wakareruka chaiwo uri nyore kwazvo uye unomhanyisa. Ndasarudza ngura semutauro wemuchina chaiwo. Asi chii icho ngura?

ngura Ndiwo mutauro wechirongwa wakanangana nekuchengetedzwa kwekuuraya, saka kuushandisa zvinenge zvisingaite kuti mumwe munhu akwanise kuvhara muchina chaiwo. Ndiwo mutauro wakanyorwa mukuvandudza wakagadzirwa na Mozilla. Servo, chinotsiva Gecko, iri kukura maari. Iwe unogona kuramba uchichinja syntax yako asi kodhi yandiri kuzoshandisa ichagara kusvika yekutanga kuburitswa.

ngura kuisa mukati Linux Nenzira yakapusa. Zvisinei, hapana chikamu chepamutemo. Vashandisi ve Ubuntu unogona kuwedzera izvi zviviri PPA: ppa: hansjorg / ngura  y ppa: cmrx64 / nhumbi, vashandisi ve Arch Unogona kushandisa AUR (cargo-git ndiyo package inoisa zvese). Vamwe vese vanogona kushandisa:

curl -s https://static.rust-lang.org/rustup.sh | sudo sh

Mushini chaiwo unoshanda sei?

Kana iwe uchiziva mashandiro anoita nyika inosanganisa yakafanana chaizvo, neiyo stack kana iyo stack. Kana zvisiri, ndinokutsanangurira. Ngatifungei kodhi inotevera:

Dhinda 2 + 3

Iyo komputa hainzwisise zvinoreva 2 + 3, uye haina kuziva marongero aunofanirwa kutevedzera. Makomputa anoshanda nemabhatiri kana matura mune iyo data yakaunganidzwa uye ichienderera ichibviswa. Iyo kodhi mumuchina wedu chaiwo inofanira kutarisa chimwe chinhu seichi:

PUSH 2 PUSH 3 Wedzera Wedzera

Chaizvoizvo isu taizoisa iwo maviri pane stack kumusoro, iwo matatu futi. ADD yaizodhonza (i.e. bvisa kubva mudura uye uwane kukosha kwayo) zvinhu zviviri zvekupedzisira pane stack uye wedzera mhedzisiro kumusoro kwesaki. PRINT yaizotora chinhu chekupedzisira pane stack uye yochishandisa kuchiratidza kwatiri. Zvino ngatiitei izvo mukati ngura.

Isu tinofanirwa kutanga tatsanangura mutauro weiyo byte code, tinogona kushandisa iripo iripo senge iri mu Java kana the CLR ye .NET / Mono, asi isu tichagadzira imwe yakakosha.

https://gist.github.com/a01de8904fd39a442c20

Isu tinoshandisa hexadecimal notation pamirairo yega yega. Pamusoro takaisa # [kutora (KubvaPrimitive)], chinoshamisa che ngura uye zvichatibatsira gare gare kuti tikwanise kuenzanisa enumeration nema byte zvakananga.

Iye zvino isu tinofanirwa kuita basa rinoitisa yega yeaya mirairo. Kune izvi isu tinofanirwa kuverenga byte uye tichiienzanisa nemirairo yatinayo mukuverenga. Kana iwe ukawana chero zviripo, iwe unofanirwa kuita chako chiito.

https://gist.github.com/8950ce212a2de2f397f9

Isu tinoita izvozvo kuverenga yega yega yega uye kuzviita:

https://gist.github.com/12e24a1f0dd65e4cd65d

Sezvauri kuona, isu tinosiyanisa kana isu takapihwa iyo PUSH yekuraira (yedu INTEGER rairo) zvisati zvaitika, iyo inotevera byte ichaendeswa zvachose kudura. Ikoko tiri kushandisa mabasa maviri andisina kukudzidzisa, kuzvida.pop () y kuzvida.push (), izvo zviri pachena kuti zviri kutarisira kubata stack.

https://gist.github.com/54147f853a8a2b8c01d9

Izvo hazvina kuomarara, asi iyo pop basa ine kukanganisa kwekuona nzira. Muchokwadi, mu ngura, kana tikabvisa iwo maitirwo zvaizotipa kukanganisa kwekusanganisa. Iye zvino isu tinongofanirwa kudaidza muchirongwa perin (yedu chaiyo muchina) uye ita bytecode.

https://gist.github.com/99b1ab461318b3a644d0

Iyo bytecode inogona kuverengerwa kubva kufaira, asi pano kuitira nyore ndakaichengeta musiyano. Kana tikazviita, zvinotipa mhedzisiro inotarisirwa:

Perin v0.1 Perin VM inoita FlopFlip bytecode Kutanga PerinVM semuenzaniso PerinVM v0.1.0 Yakazara kukosha 5

Yese kodhi inowanikwa pa GitHub pasi pe Apache License 2.0: https://github.com/AdrianArroyoCalle/perin. Kuunganidza ivo vanofanirwa kuve nazvo kago yakaiswa uye isa:

kuchaja kuvaka && ./target/main

Muchitsauko chinotevera tichaona zvakawanda nezvemutauro wedu wepurogiramu.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   mugwagwa akadaro

    Chido chekuda kuziva, kunyange hachisi kunyanya kubatsira muchokwadi, hazvikuvadze kuziva.

    Izvo zvakanaka kuti iwe unoshambadza Rust, iwo mutauro unovimbisa zvakawanda, kwete chete ndeyekuti yakachengeteka kupfuura c ++, asi (for now) yakajeka mune syntax yayo.

    Kana iri pikicha, ini handifunge nezve Java shanduko XD.

    1.    mugwagwa akadaro

      Uye kubva fortran, ini handina kumboishandisa, asi handisati ndanzwa zvakawanda zvakanaka nezvazvo ...

      1.    Mukurumbira akadaro

        Ini ndinoita, uye inonyanya kubatsira muinjiniya kunyangwe Python iri kuwana pasi.

      2.    Juan akadaro

        Fortran pamwe ndiwo mumwe mutauro wakakura pamwe naC. Nanhasi mumibvunzo yakaoma chaizvo ichave imwe kana imwe.

        Uye zvinogona kupokana kuti Fortran yakaita se'kushanduka 'kweC, apo pamwe inofanira kunge iri imwe nzira yakatenderedza, sezvo C iri nyowani, yazvino uye iine mikana yakawanda; kunyangwe imwe isina kubviswa pane imwe mune zvishoma.

        Kunyangwe zvigaro zvekupedzisira zvese zvichikwanisika kubva pane imwe nzvimbo yekutarisa.

    2.    Francisco akadaro

      +1 kuJava

  2.   porter akadaro

    Ngatione kana ndichifarira izvi, ini ndinopa chimwe chinhu kuchirongwa asi chakakosha kuti ndione kana ndichinzwisisa zvimwe.

  3.   usergnulinux akadaro

    Ndechipi chiri chinangwa chaicho chekugadzira mutauro mutsva wechirongwa? Ini pachangu, zvinoita sekunge kwandiri inzira yekuviga kodhi yekodhi.

  4.   Hongu akadaro

    Shamwari chii chakaitika kuenderera kwe "yako yega yekushandisa system"? Usaisiye ipapo ndokumbirawo uenderere mberi.

    Chaizvoizvo, iwe uri tenzi uye idzi nziyo mbiri dzakanyanyisa kutora pfungwa dzangu, asi handidi kuti dzimire pakati.

    Ndinoziva kuti vazhinji vedu tinofunga zvakafanana uye isu takamirira kuenderera uye mhedzisiro yenyaya idzi dzinonakidza kwazvo.

  5.   Cristian David akadaro

    Inonakidza kwazvo, ndinokutendai zvikuru. 🙂

  6.   Franco akadaro

    Ini handifunge seJava mutauro wehurongwa, asi muturikiri wemirairo, sezvo isingawanikwe

    1.    Mario akadaro

      [Mutauro wekuronga mutauro wakasarudzika wakagadzirirwa kuratidza mashandiro anogona kuitwa nemichina yakaita semakomputa.]

      Neichi chikonzero, Java mutauro wepurogiramu. Kunyangwe mutauro weBash (linux shell mutauro) mutauro wepurogiramu pachawo.

      Kune marudzi maviri emitauro:
      - Yakanyorwa
      - Yakadudzirwa
      - Yakasanganiswa (Virtual michina, maraibhurari echizvarwa akaunganidzwa uye kodhi inoshanda inodudzirwa)

      Vaturikiri vanobatsira zvakanyanya kana zvasvika kune multiplatform uye havana kuita kwakaipisisa kweizvozvo. Java, VB.NET, C ++ .NET, F #, C # yese mitauro yakasanganiswa. Mutauro we bash, bat, PHP, Javascript uye mimwe yakawanda inodudzirwa mitauro.

      Kana iwe usingafunge Java semutauro nekuti unodudzirwa (izvo zvisiri) haufanire kufunga mimwe mitauro yakawanda inoshandiswa kugadzira zvirongwa. Zvakare, nemutemo iwoyo wechitatu haufanire kufunga kuti pane chero chirongwa chemutauro kunze kwemutauro wemuchina pachawo.

      Uye nei zvisingaiti? Kunyange mutauro wemuchina ungatariswe semutauro sezvo uchingova iwo seti yemirairo "yakadudzirwa" ne processor

      Nekuti zvinobudirira, YOSE mitauro haisi chimwe chinhu kupfuura seti yemirairo iyo inodudzirwa ne processor.

      Unogona kuda mutauro zvakanyanya kana zvishoma (Java, mune ino kesi), zvinoita kunge zvishoma kana kushomeka uye zvine simba asi kutaura kuti hausi mutauro wechirongwa nekuti hauna kunyorwa… zvinopesana netsananguro dzese dzemitauro.

    2.    Mario akadaro

      😐 Ndinovimba handina kuita senge ndisina hunhu

      1.    Maria antonieta de manuela cardenas akadaro

        hapana runyararo wakangoparadza hupenyu hwedu chete

      2.    Mario akadaro

        hahahahaha, perdoooon. kwaisave kuda kwangu xD

    3.    Carlos akadaro

      Java mutauro wepurogiramu. nekuti iwe unogona kuvandudza kunyorera uye kana iwe ukanyora iwe unoita .jar iyo inodudzirwa neiyo JVM.Zvino zvinoenderana neyako python pfungwa haina kududzirwa chero asi inonyorwa kune akasiyana anosemesa ...

  7.   Elijah Mongelos akadaro

    Ruzivo rwakanaka kwazvo

  8.   Carlos Arturo akadaro

    ruzivo rwakanaka asi ndine kusahadzika, zvichave zvinogoneka kugadzira mutauro mutsva wepurogiramu kubva pakutanga pasina kuvimba nemamwe maanalogies kana software. Ini ndinotaura nenzira imwecheteyo mimwe mitauro yakagadzirwa seJava kana HTML.
    Ndingafarire kwazvo rubatsiro rwako pamubvunzo uyu.