رد کردن این محتوا

زبان برنامه نویسی Jafang

در سال های زیادی که کار برنامه نویسی انجام داده ام همیشه ضعف های زیادی در زبان های برنامه نویسی بوده است. به همین دلیل بر آن شدم که یک زبان برنامه نویسی جدید به نام Jafang بسازم که ایده هایی که مد نظرم هست در آن پیاده کنم.

چرا اسم این زبان رو گذاشتم Jafang ؟

به دلیل تفاوت زیاد این زبان برنامه نویسی با زبان های موجود اسم این زبان را Jafang گذاشتم چون احتمالا تا مدت ها حتی خودم هم درکش نمی کنم.
ولی این زبان کار را بسیار ساده می کند و حجم کدها را بسیار کم می کند بنابراین، مجبور به استفاده از آن هستیم.

زبان Jafang چه ویژگی هایی دارد ؟

در حال حاضر اولویت اول این زبان کم کردن تعداد کلمات کلیدی، ساخت ساختارهای ساده و افزایش سرعت برنامه نویسی می باشد.
به عنوان مثال به جای ساخت ساختارهایی مثل struct ، class و … در C++ یا مشابه آن ها در زبان های دیگر مثلا در پاسکال interface , class , record , object  و …  ، فقط یک ساختار structure داریم.

همینطور در همه ی ساختارهای دیگر که امکان ساده سازی وجود دارد این عمل تکرار شده است. مثلا به جای for , foreach , while , repeat until  و … فقط یک ساختار Loop داریم که همه را پوشش می دهد.
علاوه بر این سعی شده در ساختارها همه ی المان ها به صورت قابل شخصی سازی باشد به عنوان مثال همه ی موجودیت های این زبان به صورت متغییری تعریف می شوند و همه چیز را می توانیم در برنامه باز نویسی کنیم.

کامپایلر Jafang چه ویژگی هایی دارد ؟

یکی از امکانات کامپایلر تشخص خودکار نوع متغییرها است، به این شکل که به کاربر اجازه می دهد نوع متغییرها را تعیین نکند و البته مانع تعیین نوع نمی شود. یکی از مشکلات برنامه نویسان تعیین نوع است، به عنوان مثال اگر همه ی فعالیت های ما در زمینه ی اعداد باشد و نوع اعداد را Float تعیین کنیم در حالی که کارها در حوزه ی Integer باشد، هم سرعت برنامه کم می شود و هم فضای بیشتری توسط این متغییر ها در رم اشغال می شود.

این کامپایلر به دو صورت مترجم و مفسری کار می کند، به این معنا که کد برنامه می تواند مستقیما توسط کامپایلر اجرا شود و هم می تواند به زبان ماشین کامپایل شود و بعد اجرا شود.

کامپایلر Jafang بر خلاف اکثر کامپایلر ها که به زبان اسمبلی کامپایل می کنند به زبان Free Pascal کامپایل می کند و باقی مراحل را به آن می سپارد.
البته در آینده ممکن است به زبان های دیگر هم کامپایل کند. در برنامه ی کار این کامپایلر ، کامپایل به زبان های Javascript  و C++ هم هست.

مدیریت حافظه

در این زبان برنامه نویسی سه روش مدیریت حافظه وجود دارد.

روش اول مدیریت حافظه به صورت Reference Counting می باشد که کاربر می تواند با این روش به راحتی در هرجایی که لازم به ساخت شیء باشد آن را بسازد و بعد از پایان کار آن را رها کند. به محض رها شدن متغییر مربوط به شیء حافظه ی شیء نیز رها می شود.

روش دوم مدیرت حافظه توسط خود کاربر است. در این روش کاربر با کلمه ی کلیدی new حافظه را اختصاص می دهد و با کلمه ی کلیدی free این حافظه را آزاد می کند.

روش سوم  در روش سوم حافظه ی اختصاص داده شده توسط new توسط Garbage Collector رصد می شود و در صورتی که هیچ لینکی به این بخش از حافظه نباشد آن را آزاد می کند.

مجوز (LICENSE) :

در حال حاضر License این زبان برنامه نویسی GNU General Public License است. می توانید یک نسخه از آن را در اینجا ببینید.

منتشر شده Jafang

5 نظر

  1. صابر صابر

    خیلی خوبه عالیه ادامه بده تا کاملتر بشه

  2. صابر صابر

    یه اسم خوب و با ابهت براش انتخاب کن اسمش خوب نیست اخه قحطی اسم که نیومده

    • digiways digiways

      متاسفانه به دلیل ادغام این کار با یک برنامه ی تجاری امکان ادامه آن به صورت آزاد وجود نداره

  3. فرشید فرشید

    سلام خسته نباشید

    ساخت یک زبان برنامه نویسی اختصاصی سوئیفت یا سی شارپ …
    چه مدت زمان میبره برای تکمیلش؟
    چند نفر نیروی کار متخصص نیازمنده؟
    بودجه ساخت چه مقدار میباشد؟

    برام خیلی مهم و ضروریه هرکسی میتونه کمکم کنه ممنون میشم
    ایمیلnihatkaraguz@gmail.com

    • digiways digiways

      سلام
      ساخت یه زبان برنامه نویسی کاره ساده ای نیست.
      معمولا یه تیم ۳ – ۴ نفره برای آنالیز و تعیین ساختارها و … لازمه و یه تیم ۷-۸ نفره برای توسعه که البته بسته به اینکه برای چه کاری اون زبان رو توسعه می دید می تونه کمتر و بیشتر بشه

      من پیشنهاد می کنم برای شروع LLVM رو یه بررسی کنید. این لایبری برای ساخت کامپایلر و JIT خیلی خوبه. زبان های برنامه نویسی مختلفی روش ساخته شده که معروفترینشون CLang هست.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *