کد خبر:1005248
اشتراک گذاری
مرتب‌سازی نظرها براساس:

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

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

همراه اول

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

 

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

نظرها

13 نظر

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

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

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

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

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

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

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

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

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

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

  5. سلام ببخشید
    من میخوام با کمک یه تیم از بچه های مدرسمون یه زبان برنامه نویسی برای ساخت سایت بسازیم که ترکیبی از جاوا اسکریپت و php و css و html باشه. البته منظورم این نیست که این زبان هارو ترکیب کنیم بلکه منظورم اینه که زبانی بسازیم که هرموقع کسی خواست سایت بسازه لازم نباشه 3 تا زبان رو یاد بگیره و همین که بلد بشه با زبان ما کار کنه، بتونه 0 تا 100 سایتش رو بسازه.
    حالا ما باید دقیقا چیکار کنیم یعنی مثلا زبانمون رو با چه زبانی بنویسیم؟؟؟؟
    امیدوارم منظورم رو متوجه شده باشید.

    1. محمدامین

      فک میکنم اگه میشد همچین زبانی ساخت تا الان میساختنش و اینکه اگر بشه هم انقدر سخته که یک تیم باتجربه حرفه ای و نابغه باید روش کار کنن

    2. علی اکبر

      میشه نوشت
      اول باید هر سه زبان تولید سایت رو یاد بگیرید
      دوم یاید یه زبان کامپایلری یاد بگیرید زبان سی یا دلفی
      سوم برنامه ای ینویسید که فایل دستورات کاربر رو کاراکتر به کاراکتر بخواند وبا دستورات زیانهای تولید سایت جابجا کند
      چهارم ایجاد یه فایل که داخلش جابجایی ها ذخیره بشه
      پنجم اجرای فایل جابجا شده توشط موتورهای وب مثل Firfox
      ششم سلامتی مخهای ایرانی

  6. سلام ببخشید برای ساخت یک زبان برنامه نویسی باید در کجا بنویسیم ایا در notepad هم میشود.

  7. علیرضا رمضانی

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

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

سر‌خط آخرین خبرها

خبرهای بیشتر
فسیل یک مغز سالم ۳۱۰ میلیون ساله
فسیل یک مغز سالم ۳۱۰ میلیون ساله کشف شد!

محققان استرالیایی یکی از قدیمی‌ترین فسیل‌ها از مغز یک خرچنگ نعل اسبی را شناسایی...

عدم مشورت با کمیسیون اقتصادی
علی‌رغم تأثیر طرح صیانت روی کسب‌وکارها، هیچکس با کمیسیون اقتصادی مشورت نکرد!

رئیس کمیسیون اقتصادی و نماینده مردم کرمان و راور در مجلس شورای اسلامی گفت علی‌رغم...

تولید راپچردیسک کاربردی
تولید راپچردیسک کاربردی در صنایع نفت و گاز

در یک شرکت دانش بنیان محققان توانستند مطابق با استانداردهای جهانی دیسک‌های محافظ...

هوآوی و فولکس واگن به یکدیگر پیوستند!

شرکت هوآوی روز به روز بیشتر به سمت صنعت خودرو می‌رود. این شرکت فناوری چینی اکنون...

۴۱۱ کشته ویروس کرونا
۴۱۱ کشته ویروس کرونا در ۲۴ ساعت گذشته کشور

بنابر اعلام روابط عمومی وزارت بهداشت طی ۲۴ ساعت گذشته ۴۱۱ بیمار مبتلا به کرونا در...

پی پل نیروهای متخصص ارز دیجیتال استخدام می‌کند
پی پل به دنبال استخدام نیروهای جدید در حوزه ارزهای دیجیتال است

نیروهای جدید به پی پل کمک خواهند کرد تا در زمان پذیرش سریع بیت کوین و اتریوم،...

لپ-تاپ-گیمینگ-msi-ge66i-raider-10sfs
گیمرها را با آن تنها بگذارید! بررسی لپ‌تاپ گیمینگ MSI GE66 Raider مدل 10SFS

اولین موردی که در بررسی لپ تاپ گیمینگ MSI GE66 Raider توجه ما را حسابی به خودش جلب کرد،...

منشا کرونا در آزمایشگاه ووهان
منشا کرونا در آزمایشگاه ووهان چین به گفته حزب جمهوری خواه آمریکا

امروز دوشنبه حزب جمهوری خواه آمریکا گزارشی ارائه داد و ادعا کرد شواهدی وجود دارد...

گوشی‌های گلکسی سری S22 به سنسور 50 مگاپیکسلی RGBW مجهز می‌شوند

با اینکه زمان زیادی تا رونمایی از گوشی‌های گلکسی سری S22 باقی مانده، اما اخبار...

تعطیلی فرودگاه مهرآباد
همزمان با مراسم تنفیذ حکم رئیس‌جمهور: تنفیذ و تعطیلی فرودگاه مهرآباد فردا از ساعت ۱۰ تا ۱۲

به گفته مدیرکل فرودگاه مهرآباد، این فرودگاه و دیگر فرودگاه‌های تهران فردا سه شنبه...