خپله د برنامې ژبه جوړه کړئ (زه)

د پروګرام کولو ژبو تحول

په لومړۍ مقاله لیکلو وروسته څنګه خپل اپریټنګ سیسټم رامینځته کړئیو چا راته وویل که زه په هغې مقاله وکړم د پروګرام کولو ژبه څنګه رامینځته کړئ. په پیل کې ما ډیر پام نه دی کړی ، مګر اوس او د نورو لارو له لارې ما د برنامو ژبو جوړولو په اړه ډیر څه زده کړي دي. نو راځئ چې یې وکړو د برنامه کولو لومړنۍ ژبه، په اسانۍ سره په نورو برنامو کې سرایت وړ او دا د یو مجازی ماشین سره کار کوي چې موږ به یې ډیزاین هم کړو. نن ورځ موږ باید ترټولو لومړني مجازی ماشین جوړ کړو.

تاسو شاید حیران اوسئ: virtual یو مجازی ماشین؟ مګر ایا دا خورا مشکل نه دی او ایا دا برنامه هم ورو کوي؟ " په مقابل کې ، یو ساده مجازی ماشین خورا ساده او نسبتا ګړندی دی. ما غوره کړی زنګ د مجازی ماشین لپاره د ژبې په توګه. مګر څه شی دی زنګ?

زنګ دا د برنامه کولو ژبه ده چې د اعدام امنیت باندې تمرکز کوي ، نو د دې کارولو سره به دا عملي وي ناممکن وي چې د یو چا لپاره مجازی ماشین وتړل شي. دا د پرمختګ یوه جوړه شوې ژبه ده چې د لخوا رامینځته شوي موزیلا. سرسود ګیکو، په هغه کې وده کوي. تاسو لاهم کولی شئ خپل ترکیب بدل کړئ مګر کوډ چې زه یې کاروم د لومړي مستحکم خوشې کیدو پورې به پاتې وي.

زنګ په کې ولګول شو لینوکس په ساده ډول. په هرصورت ، هیڅ رسمي پارسل شتون نلري. د د وبنټو تاسو دا دوه اضافه کولی شئ PPA: پی پی اے: هنجورګ / زنګ  y ppa: cmrx64 / کارګود Arch وکاروی AUR (کارګو ګیت دا بسته ده چې هرڅه یې نصبوي). نور کولی شي وکاروي:

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

یو مجازی ماشین څنګه کار کوي؟

که تاسو پوهیږئ چې د راټولولو نړۍ څنګه کار کوي دا دقیقا ورته ده ، د سټا یا سټیک سره. که نه ، زه به یې تاسو ته تشریح کړم. راځئ چې لاندې کوډ تصور کړو:

2 + 3 چاپ کړئ

کمپیوټر نه پوهیږي چې 2 + 3 څه معنی لري ، او نه پوهیږي چې کوم حکم تعقیب کړي. کمپیوټر د بیټرۍ یا ټیکونو سره کار کوي په کوم کې چې معلومات راټولیږي او په دوامداره توګه استخراج کیږي. زموږ په مجازی ماشین کې دا کوډ باید یو څه ورته وګوري:

2 Push 3 مخ پرینت

اساسا موږ به 2 په سټیک کې واړوو ، 3 هم. ADD به (د بیلګې په توګه دا له سټایل څخه لرې او د هغې ارزښت ترلاسه کړئ) په تیټ کې وروستي 2 توکي وباسئ او پایله یې د سټا په سر کې اضافه کړئ. PRINT به وروستی توکي په کڅوړه کې واخلي او موږ ته یې د ښودلو لپاره یې وکاروي. اوس راځئ چې دا په زنګ.

موږ باید لومړی د. لپاره ژبه تعریف کړو بای کوډ، موږ کولی شو موجود د ورته په څیر وکاروو جاوا یا CLR .NET / مونو ، مګر موږ لاهم یو بل اساسی رامینځته کوو.

https://gist.github.com/a01de8904fd39a442c20

موږ د هرې لارښوونې لپاره هیکسادیسیمال اشاریه کاروو. موږ لوړه کړې # [اخذ (له پریمیټیو څخه)]، یو ځانګړتیا ده زنګ او دا به وروسته زموږ سره مرسته وکړي چې موږ وکولی شو د نیټې نیغ په نیغه پرتله کړو.

اوس موږ باید یو فنکشن جوړ کړو چې دا هر یو لارښوونې عملي کوي. د دې لپاره موږ باید بایټ ولولئ او دا د لارښوونو سره پرتله کړئ چې موږ یې په شمیره کې لرو. که تاسو کوم شتون ومومئ چې شتون لري ، تاسو باید خپله عمل اجرا کړئ.

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

موږ دا کوو چې هر یو بایټ په انفرادي ډول ولولئ او د پلي کولو لپاره یې:

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

لکه څنګه چې تاسو لیدلی شئ ، موږ توپیر کوو که چیرې موږ دمخه د PUSH کمانډ (زموږ INTEGER کمانډ) راکړل شو ، نو راتلونکې بایټ به په بشپړ ډول اسٹیک ته وړل کیږي. هلته موږ دوه دندې کارول کیږي چې ما تاسو ته ندي ښوولې ، خود.پيپ () y ځان پاش ()، کوم چې په څرګنده د زېرمو اداره کولو مسؤلیت لري.

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

دا خورا پیچلي ندي ، مګر د پاپ فنکشن د غلطۍ کشف میکانیزمونه لري. په حقیقت کې ، په زنګ، که موږ دا میکانیزمونه لرې کړو دا به موږ ته د تالیف غلطي راکړي. اوس موږ باید په برنامه کې تلیفون وکړو پروین (زموږ مجازی ماشین) او بای کوډ اجرا کړئ.

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

دا بای کوډ د فایل څخه لوستل کیدی شي ، مګر دلته د سادگي لپاره ما دا په متغیر کې زیرمه کړی. که موږ دا اعدام کړو ، دا به موږ ته متوقع پایلې راکړي:

پیرین v0.1 پیروین VM د فرین فلپ بای کوډ اجرا کوي د پیلین وی ایم بیلګه پیل کوي پیرن وی ایم v0.1.0 د بشپړ ارزښت 5

ټول کوډ په کې شتون لري GitHub د د اپاټا لایسنس 2.0: https://github.com/AdrianArroyoCalle/perin. د تالیف لپاره دوی باید ولري کارګو نصب او لګول:

چارج جوړول && ./target/main

په راتلونکي فصل کې به موږ زموږ د برنامو ژبې په اړه نور معلومات وګورو.


د مقالې مینځپانګه زموږ د اصولو سره سمون لري ایډیټیک اخلاق. د غلطۍ راپور ورکولو لپاره کلیک وکړئ دلته.

17 نظرونه ، خپل پریږدئ

خپله نظر پرېږدئ

ستاسو د بریښنا لیک پته به خپره نه شي.

*

*

  1. د معلوماتو لپاره مسؤل: میګیوانجل ګاتین
  2. د معلوماتو هدف: د سپیم کنټرول ، د نظر مدیریت.
  3. قانونیت: ستاسو رضایت
  4. د معلوماتو راټولول: معلومات به د قانوني مکلفیت پرته دریمې ډلې ته نه لیږدول کیږي.
  5. د معلوماتو ذخیره: ډیټابیس د Occentus شبکې (EU) لخوا کوربه شوی
  6. حقونه: په هر وخت کې تاسو کولی شئ خپل معلومات محدود ، له سره تنظیم او حذف کړئ.

  1.   روډر dijo

    په زړه پوری تجسس ، که څه هم دا په واقعیت کې خورا ګټور ندي ، پدې پوهیدلو ته زیان نه رسوي.

    دا عالي ده چې تاسو د رست اعلان کوئ ، دا هغه ژبه ده چې ډیرې ژمنې کوي ، نه یوازې دا چې د C ++ څخه ډیر خوندي دی ، مګر (د اوس لپاره) په خپل ترکیب کې روښانه دی.

    لکه څنګه چې د عکس لپاره ، زه به د جاوا ارتقاء XD ونه ګ .م.

    1.    روډر dijo

      او له قلندر څخه ، ما دا هیڅکله نه دی کارولی ، مګر ما د دې په اړه ډیر ښه شیان ندي اوریدلي ...

      1.    نامتو dijo

        زه یې کوم ، او دا په ځانګړي ډول انجینري کې ګټور دی پداسې حال کې چې پیتون ځمکه ترلاسه کوي.

      2.    جوون dijo

        فورټران شاید د سي سره بله لویه ژبه ده لاهم نن ورځ په ریښتیا هم په انتقادي پوښتنو کې به یو یا بل وي.

        او دا به د بحث وړ وي چې فورټران د C ارتقاء په توګه دی ، کله چې شاید دا شاوخوا وي بله لاره وي ، ځکه چې سی نوی دی ، ډیر پرمختللی دی او د ډیرو امکاناتو سره؛ که څه هم یو له بل څخه لږترلږه نه جلا کیږي.

        که څه هم وروستي دریځونه د ځینې لید څخه ټول بحث وړ دي.

    2.    فرانسیسکو dijo

      جاوا ته +1

  2.   انځورونه dijo

    راځئ وګورو چې زه دا خوښوم ، زه برنامو ته یو څه درکوم مګر لومړنی چې وګورم که زه ډیر څه پوهیږم.

  3.   کارن ګولينوکس dijo

    د نوې برنامې ژبې رامینځته کولو اصلي هدف څه دی؟ په شخصي توګه ، دا ماته داسې بریښي چې دا د سرچینې کوډ پټولو لپاره چل دی.

  4.   ییلی dijo

    ملګري ، د "خپل عملیاتي سیسټم" دوام ته څه پیښ شوي؟ مه یې پرېږده مهربانی وکړه ادامه یی کړئ

    په حقیقت کې ، تاسو یو ماسټر یاست او یوازې دا دوه سندرې په بشپړ ډول زما پام ځانته اړولی ، مګر زه نه غواړم دوی نیمه پاتې شي.

    زه پوهیږم چې زموږ څخه ډیری ورته فکر کوي او موږ د دې خورا په زړه پورې موضوعاتو دوام او پایلو ته سترګې په لار یو.

  5.   کریسټین ډیوډ dijo

    ډیر په زړه پوری ، ډیره مننه. 🙂

  6.   فرانکو dijo

    زه جاوا د برنامه کولو ژبه نه ګ ratherم ، بلکه د قوماندې ترجمان. ځکه چې دا د تایید وړ ندي

    1.    ماریو dijo

      [د برنامه کولو ژبه یوه رسمي ژبه ده چې د پروسو څرګندولو لپاره ډیزاین شوې چې د ماشینونو لکه کمپیوټرونو لخوا پرمخ وړل کیدلی شي.]

      د دې دلیل لپاره ، جاوا د برنامې ژبه ده. حتی د باش ژبه (د لینکس شیل ژبه) پخپله کې یو برنامه ژبه ده.

      دلته دوه ډوله ژبې دي:
      - تالیف شوی
      - تشریح شوی
      - مخلوط (مجازی ماشینونه ، اصلي کتابتونونه ترتیب شوي او د کاري کوډ تشریح کیږي)

      ژباړونکي خورا ګټور دي کله چې دا کثیر پلیټفارم ته راځي او د دې لپاره ویونکيونکی فعالیت نلري. جاوا ، VB.NET ، C ++ .NET ، F # ، C # ټولې ګډې ژبې دي. د باش ژبه ، بیټ ، پی ایچ پی ، جاواسکریپټ او نور ډیر څه تشریح شوي ژبې دي.

      که تاسو جاوا د ژبې په توګه نه ګ .ئ ځکه چې دا تشریح کیږي (کوم چې دا ندي) ، تاسو باید ډیری نورې ژبې په پام کې ونیسئ چې د برنامو جوړولو لپاره کارول کیږي. سربیره پردې ، د درې قواعدو سره تاسو باید په پام کې ونلرئ چې د ماشین ژبې پرته پخپله کومه برنامه ژبه شتون لري.

      او ولې نه؟ حتی د ماشین ژبه ژبه نشي ګ .ل کیدی ځکه چې دا واقعیا یوازې د پروسیسر لخوا تشریح شوي د قوماندې مجموعه ده.

      ځکه چې په مؤثره توګه ، ټولې ژبې د امرونو له سیټ پرته نور څه ندي چې د پروسیسر لخوا تشریح کیږي.

      تاسو ممکن لږ یا لږه ژبه غوره کړئ (جاوا ، پدې قضیه کې) ، ډیر یا لږ ګټور او ځواکمن ښکاري مګر ووایی چې دا د برنامو ژبه نده ځکه چې تالیف شوی نه دی ... دا د ټولو برنامو ژبو تعریفونو خلاف دی.

    2.    ماریو dijo

      😐 زه امید لرم چې زه ډیر بد نه ښکاري

      1.    ماریا انتونیوټا ډی مینیولا کارډیناس dijo

        غلی نه یې تاسو یوازې زموږ ژوند وران کړ

      2.    ماریو dijo

        هاهاهاهاها ، پریدوون. دا زما اراده نه وه

    3.    کارلوس dijo

      جاوا د پروګرام کولو ژبه ده. ځکه چې تاسو کولی شئ غوښتنلیک رامینځته کړئ او کله چې تاسو مرتب کړئ تاسو .JJ رامینځته کړئ چې د JVM لخوا تشریح کیږي. بیا ستاسو د اجنبي منطق له مخې دا تشریح کیږي هم نه ، مګر دا مختلف اجرا کونکو ته ترکیب کوي ...

  7.   الیاس مانجیلوس dijo

    ډیر ښه معلومات

  8.   کارلوس آرټورو dijo

    ښه معلومات مګر زه یو شک لرم ، دا به امکان ولري چې له سکریچ څخه د نوي برنامو ژبه رامینځته کړئ پرته لدې چې په نورو انلاګونو یا سافټویر تکیه وکړئ. زه په ورته ډول خبرې کوم چې نورې ژبې لکه جاوا یا HTML په څیر جوړې شوې وې.
    زه به دې پوښتنې کې ستاسو د مرستې ډیره ستاینه وکړم.