شیفر

زبان برنامه نویسی خودتان را بسازید!

آیا دوست دارید خودتان یک زبان برنامه نویسی به وجود آورید؟! ممکن است این جمله برایتان خنده دار باشد و با خودتان بگویید مگر چنین چیزی ممکن است!؟

برای اثبات این جمله، قصد داریم به صورت تصویری و با آموزش های گام به گام، نحوه ی ساخت یک زبان برنامه نویسی را برایتان توضیح دهیم. می توانید قابلیت هایی که دوست دارید در زبان برنامه نویسی خود قرار دهید و حتی آن را به اسم خود منتشر کنید!

 

670px-Create-a-Programming-Language-Step-1

قدم اول: با کلمات تخصصی و کلیدی آشنا شوید

نویسندگان کامپایلرها (مترجم ها)، معمولا با دستورات کلیدی آشنا نیستند. قبل از ساخت کامپایلر, دستورات آن را به دقت بررسی کنید. مطمئن باشید هرچیزی که لازم است بلد باشید را آموخته اید.

 

670px-Create-a-Programming-Language-Step-2

قدم دوم: تصمیم بگیرید چه چیزی مشکل زبان شما را حل می کند

بررسی کنید که آیا هدفتان پرداختن به یک مشکل خاص یا ایجاد یک زبان جدید است؟

 

670px-Create-a-Programming-Language-Step-3

قدم سوم: در مورد معنا و کاربرد زبان خود فکرکنید

  • آیا قصد دسترسی مستقیم اشاره گر را دارید؟
  • انواع داده در زبان شما چیست؟
  • زبان شما استاتیک یا پویا است؟
  • مدل حافظه ی شما چیست؟ آیا قصد استفاده از یک زباله روب(garbage collector) یا مدیریت دستی حافظه (manual memory management) را دارید؟ (اگر قصد استفاده از زباله روب را دارید، آن را برای زبان خود آماده کنید).
  • مبحث همزمانی (concurrency) را چگونه مدیریت می کنید؟ آیا قصد استفاده از یک نخ که مدلی ساده است را دارید یا می خواهید از روشی پیچیده تر مانند لیندا استفاده کنید؟ (با توجه به اینکه رایانه های امروزه چند هسته ای هستند).
  • توابع اولیه در زبان جاسازی شوند یا همه چیز در کتابخانه ها قرار گیرند؟
  • سبک زبان شما چگونه باشد؟ تابعی؟ شی گرا؟ نمونه ی اولیه (مانند جاوا اسکریپت)؟ جنبه گرا؟ الگو گرا؟ و یا سبکی کاملا جدید باشد؟
  • قصد دارید زبان شما با سایر زبان ها و کتابخانه ها ارتباط داشته باشد؟ این موضوع یکی از نکات بسیار مهم است. در نهایت، پاسخ به چنین سوالاتی می تواند کمک شایانی به شما و زبانی که قصد دارید آن را توسعه دهید، خواهد کرد.

 

 670px-Create-a-Programming-Language-Step-4

قدم چهارم: هدف زبان شما چیست و کاربران شما چه کسانی خواهند بود؟

یکی از مهم ترین مراحل، بررسی خروجی زبان برنامه نویسی شماست و باید ببینید که قصد دارید که چه پلتفرمی را توسعه دهید. می خواهید در کدام زمینه (کامپیوتر، موبایل، وب سایت و …) فعالیت داشته باشید؟ آیا کاربران از پلتفرمی که شما انتخاب کرده اید، استقبال خواهند کرد؟

 

670px-Create-a-Programming-Language-Step-5

قدم پنجم: ایده های مختلفی را تجربه کنید

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

 

670px-Create-a-Programming-Language-Step-6

قدم ششم: یک فرمول گرامری برای دستورات زبان خود قرار دهید

 

Create-a-Programming-Language-Step-7

قدم هفتم: تصمیم بگیرید که زبان شما ترجمه یا تفسیر شود؟

کاربران مفسرها (interpreted)، برنامه های خود را درون یک محیط کدنویسی، ویرایش می کنند و در نهایت برنامه ها، به صورت مستقیم بر روی مفسر اجرا خواهد شد اما کاربران مترجم ها(compiler), ابتدا کدهای خود را در محیط توسعه، ویرایش کرده و سپس آن را کامپایل و ذخیره می کنند. در نهایت برنامه، در هر جایی اجرا خواهد شد.

 

670px-Create-a-Programming-Language-Step-8

قدم هشتم: یک اسکنر یا تجزیه کننده و ابزار جستجو در نظر بگیریم

لازم است در نرم افزار کامپایلر یا مترجم خود، یک اسکنر، برای بررسی صحیح یا غلط بودن کدها در نظر بگیریم. همچنین توانایی شناسایی خطاها و هشدارها را داشته باشد.

 

670px-Create-a-Programming-Language-Step-9

قدم نهم: اصولی که در تمامی زبان های برنامه نویسی وجود دارند رعایت شود

فراموش نکنید که یکسری از فرمان ها، در تمامی زبان های برنامه نویسی وجود دارند. چنانچه زبان شما از مواردی نظیر متغیرها، توابع، آرایه ها، کلاس ها و… پشتیبانی نکند، زبان شما مورد استقبال قرار نخواهد گرفت.

 

670px-Create-a-Programming-Language-Step-10

قدم دهم: ساخت تولید کننده ی خودکار کد فراموش نشود!

 

 670px-Create-a-Programming-Language-Step-11

قدم یازدهم: برای تست کردن زبان خود، برنامه های زیادی بنویسید

تصور کنید که زبان برنامه نویسی شما از لحاظ گرامری و دستورالعمل ها دارای خطا می باشد! باید بگوییم فاجعه هست! پس حتما زبان برنامه نویسی خود را با نوشتن برنامه های گوناگون بررسی کنید و سپس زبان خود را منتشر کنید.

 

670px-Create-a-Programming-Language-Step-12

قدم دوازدهم: حتما این مورد را در نظر بگیرید که کاربر بتواند برنامه های خود را عیب یابی کند

 

670px-Create-a-Programming-Language-Step-13

قدم سیزدهم: برای زبان برنامه نویسی خود مستندات و آموزش هایی قرار دهید

فراموش نکنید که مستنداتی را برای زبان خود در نظر بگیرید تا کاربران بتوانند زبان شما را یاد بگیرند. چنانچه منابع آموزشی برای زبان خود قرار ندهید، مسلما مورد استقبال واقع نخواهد شد.

 

670px-Create-a-Programming-Language-Step-14

قدم چهاردهم: زبان خود را منتشر کنید!

 

منبع: wikihow

7 نظرات
  1. mina می گوید

    سلام میشه اموزش ساخت یک زبان برنامه نویسی مشتق شده از زبان ++cرا اموزش بدهید ! واینکه مثلا چطور میتوان به جای متغیرint از in استفاده بهشه وبجای ورودی cinاز inاستفاده کنه وبجای کلمه cout از out استفاده بشه ئو در واقع برای جمع کردن دو متغیر a,b و نمایش نتیجه با c طراحی بشه! ضمنا اگه ممکنه نحوه ایجاد کامپایلر رو هم توضیح بدید! با تشکر

    1. علی اکبر می گوید

      کامپایلرها به چند روش طراحی میشن
      روش اول:
      آشنایی کامل به زبان ماشین سپس نوشتن کامپایلر و عمل جابجایی کدها و در نهایت تبدیل کدها به شکل باینری یا همان صفرویک این روش سرعت بالایی دارد ولی پیاده سازی آن خیلی سخته و دانش بالایی از ماشین و کد ماشین می خواهد.
      مثال: زبان Mingw C++ , Nasm

      روش دوم:
      نوشتن کامپایلر به زبان سطح بالا مثل C++
      کاربر میاد تو یه ادیتور متن مثل Notepad ویندوز دستورات را تایپ کرده و با یه نام ذخیره میکنه با اجرای کامپایلر و دادن اسم فایل از طریق خط فرمان یا یه پنجره فایل را به حافظه برده و سپس خط به خط و دستور به دستور اون رو عملیات تعویض فرمان میکنه و بجای دستورات کامپایلر شما دستورات اسمبلی یا ماشین کد را قرار داده و در آخر آنرا داخل یه فایل ذخیره کرده و در آخر آنرا کامپایل میکند.
      اگر دستورات تعویض شده اسمبلی باشد با Nasm
      و اگر دستورات تعویضی سی یا سی++ باشد با Mingw قابل اسمبل و کامپایل است.

  2. فرشید می گوید

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

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

    برام خیلی مهم و ضروریه هرکسی میتونه کمکم کنه ممنون میشم

    1. علی اکبر می گوید

      سلام
      من خودم یه مفسر نوشتم که در زمان اجرا دستورات نوشته شده در یه فایل رو خط به خط اجرا می کنه ۱۰ عدد دستور العمل داره
      روی تمام سیستم عاملها موجود هم کار می کنه حدودا ۱ ماهه تو اوقات بیکاری نوشتم
      البته خیلی کامل نیست و جای کار بیشتر رو داره
      به زبان Mingw c نوشته شده شی گرایی رو هم ساپورت میکنه می خوام این اولین مفسر ایرانی باشه که وارد دنیای اپن سورس میشه

  3. امیر می گوید

    سلام ببخشید الان برای نوشتن یک زبان جدید که اول از نوشتن کامپایلرش شروع میشه کد های کامپایرو تو چه محیطی باید بنویسیم؟ اگر بخوایم کلا زبانمون مستقل باشه و از اساس و پایه مستقلا تعریفش کنیم چی؟ یعنی بطور مثال اولین زبان برنامه نویسی نوشته شده تو چه محیطی کامپایلرش نوشته شد در حالی که اون زمان هیچ زبان دیگه ای وجود نداشت؟؟

  4. Mehran می گوید

    آفرین بچها ، به نظرتون می‌شه یه زبان برنامنویسی به زبان فارسی نوشت؟ مثلا اگر این شرط باشه این اجرا می‌شه ، وگرنه ارور میده

    1. نیما می گوید

      خیر چون باعث مشکلات زیادی میشه مثل چپ چین و راست چین بودن متن
      چون فارسی از راست نوشته میشه ولی عدد ها و حروف انگلیسی از چپ که باعث دردسر میشه

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.