نحوه ایجاد زبان برنامه نویسی: 15 مرحله (همراه با تصاویر)

فهرست مطالب:

نحوه ایجاد زبان برنامه نویسی: 15 مرحله (همراه با تصاویر)
نحوه ایجاد زبان برنامه نویسی: 15 مرحله (همراه با تصاویر)

تصویری: نحوه ایجاد زبان برنامه نویسی: 15 مرحله (همراه با تصاویر)

تصویری: نحوه ایجاد زبان برنامه نویسی: 15 مرحله (همراه با تصاویر)
تصویری: نحوه صحیح تمیز کردن مانیتور و صفحه نمایش ها 2024, آوریل
Anonim

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

مراحل

ایجاد زبان برنامه نویسی مرحله 1
ایجاد زبان برنامه نویسی مرحله 1

مرحله 1. با فناوری آشنا شوید

اگر نمی دانید چگونه از رایانه استفاده کنید ، نمی توانید یک زبان برنامه نویسی ایجاد کنید.

ایجاد زبان برنامه نویسی مرحله 2
ایجاد زبان برنامه نویسی مرحله 2

مرحله 2. با اصطلاحات آشنا شوید

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

ایجاد زبان برنامه نویسی مرحله 3
ایجاد زبان برنامه نویسی مرحله 3

مرحله 3. تصمیم بگیرید که زبان شما چه مشکلی را حل می کند

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

ایجاد یک زبان برنامه نویسی مرحله 4
ایجاد یک زبان برنامه نویسی مرحله 4

مرحله 4. به معناشناسی زبان خود و مفاهیم آن فکر کنید

  • آیا شما اجازه دسترسی مستقیم به اشاره گر را می دهید یا خیر؟
  • انواع داده های زبان شما چیست؟
  • آیا این زبان استاتیک است یا پویا؟
  • مدل حافظه شما چیست؟ آیا قصد دارید از جمع آوری زباله یا مدیریت حافظه دستی استفاده کنید؟ (اگر از جمع آوری زباله استفاده می کنید ، آماده نوشتن آن یا سازگار کردن موجود با زبان خود باشید.)
  • چگونه می توان همزمان را مدیریت کرد؟ آیا قصد دارید از یک مدل ساده نخ یا قفل کردن یا چیزی پیچیده تر مانند لیندا یا مدل بازیگر استفاده کنید؟ (امروزه رایانه ها دارای چندین هسته هستند.)
  • آیا عملکردهای اولیه در زبان تعبیه شده است یا همه چیز از یک کتابخانه به دست می آید؟
  • پارادایم یا پارادایم های زبان شما چیست؟ کاربردی؟ شی گرا؟ نمونه اولیه (مانند جاوا اسکریپت)؟ جنبه محور؟ قالب گرا؟ یا چیزی کاملاً جدید؟
  • نحوه ارتباط زبان شما با کتابخانه ها و زبانهای موجود (عمدتا C) چگونه است؟ اگر در حال ساختن یک زبان مخصوص دامنه هستید ، این نکته مهم است.
  • در نهایت ، برخی از پاسخ های این سوالات قرار است در مرحله دوم پاسخ داده شوند و به شما در پاسخ گام بعدی کمک می کند.
ایجاد زبان برنامه نویسی مرحله 5
ایجاد زبان برنامه نویسی مرحله 5

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

به عنوان مثال ، "آنها ممکن است بخواهند یک روبات را به دنبال خطی هدایت کند" یا "آنها ممکن است بخواهند برنامه های رومیزی نسبتاً قابل حمل را در آن ایجاد کنند" یا "آنها ممکن است بخواهند برنامه های وب را با آن ایجاد کنند".

ایجاد یک زبان برنامه نویسی مرحله 6
ایجاد یک زبان برنامه نویسی مرحله 6

مرحله 6. ایده های نحو (متن زبان) را برای مثال های بالا آزمایش کنید

مراقب باشید که زبان خود را در رده زبان بدون زمینه یا چیزی در داخل آن نگه دارید. تولید کننده تجزیه کننده شما و بعداً از آن قدردانی خواهید کرد

ایجاد زبان برنامه نویسی مرحله 7
ایجاد زبان برنامه نویسی مرحله 7

مرحله 7. یک دستور زبان رسمی برای نحو بنویسید

ایجاد زبان برنامه نویسی مرحله 8
ایجاد زبان برنامه نویسی مرحله 8

مرحله 8. تصمیم بگیرید که آیا زبان تفسیر یا کامپایل می شود

به این معنی که در دنیای تفسیر شده ، کاربر شما معمولاً برنامه شما را در ویرایشگر ویرایش می کند و مستقیماً آن را بر روی مترجم اجرا می کند. در حالی که در دنیای کامپایل شده ، کاربر شما برنامه شما را ویرایش کرده ، کامپایل می کند ، فایل اجرایی حاصل را در جایی ذخیره کرده و اجرا می کند.

ایجاد یک زبان برنامه نویسی مرحله 9
ایجاد یک زبان برنامه نویسی مرحله 9

مرحله 9. اسکنر و تجزیه کننده جلویی را بنویسید یا ابزاری را پیدا کنید که در این زمینه به شما کمک می کند

همچنین به این فکر کنید که چگونه کامپایلر/مترجم شما در مورد برنامه های اشتباه و خطاهای نحوی به کاربر شما هشدار می دهد

ایجاد زبان برنامه نویسی مرحله 10
ایجاد زبان برنامه نویسی مرحله 10

مرحله 10. از اطلاعات تجزیه کننده برای نوشتن کد شیء یا یک نمایش متوسط استفاده کنید

از تجزیه کننده بخواهید یک AST ایجاد کند ، سپس کد شیء خود را از AST با استفاده از سه کد آدرس یا برادر بزرگتر آن SSA ایجاد کنید ، سپس یک جدول نماد برای تعریف توابع ، متغیرهای جهانی و غیره ایجاد کنید.

همچنین ، بسته به زبان خود ، ممکن است بخواهید جداول اشاره گر مجازی یا جداول اطلاعاتی برای کلاس های خود ایجاد کنید (به منظور پشتیبانی از بازتاب یا RTTI)

ایجاد یک زبان برنامه نویسی مرحله 11
ایجاد یک زبان برنامه نویسی مرحله 11

مرحله 11. مجری یا تولید کننده کد را بنویسید که همه چیز را به هم متصل می کند

ایجاد یک زبان برنامه نویسی مرحله 12
ایجاد یک زبان برنامه نویسی مرحله 12

مرحله 12. برای تست زبان برنامه های آزمایشی زیادی بنویسید

شما می خواهید برنامه هایی ایجاد کنید که بر گرامر رسمی شما تأکید می کند تا ببینید که کامپایلر شما هر چیزی را که در تعریف شما وجود دارد می پذیرد و هر آنچه خارج از آن است را رد می کند

ایجاد یک زبان برنامه نویسی مرحله 13
ایجاد یک زبان برنامه نویسی مرحله 13

مرحله 13. نحوه استفاده از برنامه برای اشکال زدایی برنامه های خود را در نظر بگیرید

ایجاد یک زبان برنامه نویسی مرحله 14
ایجاد یک زبان برنامه نویسی مرحله 14

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

در صورت نیاز به جمع آوری زباله یا سایر ویژگی های زمان اجرا.

به طور خاص ، اگر یک کامپایلر می نویسید ، برای شروع اجرای کد کاربر (به عنوان مثال ، تخصیص همه متغیرهای جهانی) ، به کدی که سیستم عامل اجرا می کند ، نیاز دارید

ایجاد یک زبان برنامه نویسی مرحله 15
ایجاد یک زبان برنامه نویسی مرحله 15

مرحله 15 زبان خود را به همراه مشخصات آن و چند نمونه از کارهایی که می توانید در آن انجام دهید منتشر کنید

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

ویدئو - با استفاده از این سرویس ، ممکن است برخی از اطلاعات با YouTube به اشتراک گذاشته شود

نکات

  • با طراحی زبان خود شروع کنید و هیچ کدی ننویسید ، تا زمانی که راضی باشید و به (یا بیشتر) س questionsالات یا مشکلات مربوط به طرح خود پاسخ ندهید ، زیرا تغییر طرح زودتر از دیرتر آسان تر است.
  • پلتفرم مورد نظر خود (سیستم عامل و کتابخانه ها) را برای کامپایلر/مترجم خود بشناسید ، بالاخره شما قصد دارید از آن استفاده کرده و آن را دستکاری کنید.

هشدارها

  • فکر کنید که آیا واقعاً به یک زبان جدید احتیاج دارید و زبان شما از چه چیزهایی جدید برخوردار است که سایر زبانها ندارند (ممکن است ترکیبی از ویژگی ها یا یک ویژگی واحد باشد).
  • اگر ندانید چه می کنید ، نوشتن زبان دشوار است. تمرین زیادی هم می خواهد.
  • برای گذراندن مدتی در طراحی زبان آماده شوید ، زیرا پس از نوشتن کامپایلر و گذراندن مرحله طراحی ، فرصتی برای تغییر زبان خود نخواهید داشت.
  • سعی نکنید ویژگی های خود را بر اساس اتحاد چند زبان قرار دهید ، مانند این که بگویید زبان شما اتحادی از زبان X ، زبان Y و زبان Z خواهد بود. تاریخ به ما نشان داده است که زبانهایی که به این شکل ایجاد شده اند هرگز موفق نخواهند شد ، یا همه به جای چیزی بر اساس C برنامه نویسی PL/1 را انجام می دهند.

توصیه شده: