Бағдарламалау тілін қалай құруға болады: 15 қадам (суреттермен)

Мазмұны:

Бағдарламалау тілін қалай құруға болады: 15 қадам (суреттермен)
Бағдарламалау тілін қалай құруға болады: 15 қадам (суреттермен)

Бейне: Бағдарламалау тілін қалай құруға болады: 15 қадам (суреттермен)

Бейне: Бағдарламалау тілін қалай құруға болады: 15 қадам (суреттермен)
Бейне: Выключается компьютер? частая причина -перегрев Не крутиться вентилятор видеокарты или процессора. 2024, Мамыр
Anonim

Көптеген адамдар күнделікті қолданатын программалау тілдерінде қиындықтар немесе реніштер болады. Кейбіреулер істерді абстрактілі түрде шешкенді қалайды, ал басқалары «стандартты» болуын қалайды. Сіз IT маманы болсаңыз да, әуесқой болсаңыз да, сіз жаңа бағдарламалау тілін жасағыңыз келеді.

Қадамдар

Бағдарламалау тілін жасау 1 -қадам
Бағдарламалау тілін жасау 1 -қадам

Қадам 1. Технологиямен таныс болыңыз

Егер сіз компьютерді қолдануды білмесеңіз, сіз бағдарламалау тілін жасай алмайсыз.

Бағдарламалау тілін жасау 2 -қадам
Бағдарламалау тілін жасау 2 -қадам

Қадам 2. Терминологиямен таныс болыңыз

Компиляторлар жиі таныс емес терминологияны қолданады. Жалғастырмас бұрын компиляторлар туралы оқыңыз. Сіз білуіңіз керек барлық нәрсені білетіндігіңізге сенімді болыңыз.

Бағдарламалау тілін құру 3 -қадам
Бағдарламалау тілін құру 3 -қадам

3 -қадам. Сіздің тіліңіз қандай мәселені шешетінін шешіңіз

Бұл доменге қатысты мәселені шеше ме, әлде жалпыға ортақ тіл бе?

Бағдарламалау тілін жасау 4 -қадам
Бағдарламалау тілін жасау 4 -қадам

4 -қадам. Өз тіліңіздің семантикасы мен оның ұғымдары туралы ойланыңыз

  • Көрсеткішке тікелей кіруге рұқсат бересіз бе, жоқ па?
  • Сіздің тіліңіздің қандай деректер түрлері бар?
  • Бұл статикалық немесе динамикалық тіл бе?
  • Сіздің жады үлгісі қандай? Сіз қоқыс жинағышты немесе қолмен жад басқаруды қолданасыз ба? (Егер сіз қоқыс жинағышты қолдансаңыз, оны жазуға дайын болыңыз немесе барын өз тіліңізге бейімдеп алыңыз.)
  • Параллельділік қалай өңделеді? Сіз қарапайым бұрау/құлыптау моделін немесе Линда немесе актер үлгісі сияқты күрделі нәрсені қолданасыз ба? (Қазіргі уақытта компьютерлерде бірнеше ядро бар.)
  • Тілге енгізілген қарапайым функциялар бар ма, әлде бәрі кітапханадан шығады ма?
  • Сіздің тілдің парадигмасы немесе парадигмасы қандай? Функционалды? Объектіге бағытталған? Прототип (JavaScript сияқты)? Аспектке бағытталған? Үлгіге бағдарланған ба? Немесе мүлде жаңа нәрсе?
  • Сіздің тіліңіз қолданыстағы кітапханалармен және тілдермен қалай байланысады (негізінен С)? Егер сіз доменге арнайы тіл құрсаңыз, бұл маңызды.
  • Ақырында, бұл сұрақтардың кейбір жауаптарына екінші қадам жауап береді және келесі қадамға жауап береді.
Бағдарламалау тілін жасау 5 -қадам
Бағдарламалау тілін жасау 5 -қадам

Қадам 5. Біреу сіздің тіліңізбен орындағысы келетін нақты тапсырмалар туралы ойланыңыз

Мысалы, 'олар роботты сызықпен жүруге бағыттауы мүмкін' немесе 'олар салыстырмалы портативті жұмыс үстелі бағдарламаларын құрғысы келуі мүмкін' немесе 'олар онымен веб -қосымшалар жасағысы келуі мүмкін'.

Бағдарламалау тілін жасау 6 -қадам
Бағдарламалау тілін жасау 6 -қадам

Қадам 6. Жоғарыда келтірілген мысалдар үшін синтаксистік идеялармен (тіл мәтіні) тәжірибе жасаңыз

Тіліңізді контекстсіз тілдер санатында немесе оның ішіндегі нәрсені сақтап қалуға тырысыңыз. Сіздің талдаушы генераторыңыз және сіз оны кейінірек бағалайсыз

Бағдарламалау тілін жасау 7 -қадам
Бағдарламалау тілін жасау 7 -қадам

Қадам 7. Синтаксистің ресми грамматикасын жазыңыз

Бағдарламалау тілін құру 8 -қадам
Бағдарламалау тілін құру 8 -қадам

Қадам 8. Тіл түсіндірілетінін немесе құрастырылатынын шешіңіз

Түсіндірілген әлемде сіздің пайдаланушы әдетте бағдарламаңызды редакторда өңдейді және оны тікелей аудармашыда іске қосады; құрастырылған әлемде сіздің пайдаланушы бағдарламаңызды өңдейді, оны құрастырады, нәтижесінде орындалатын файлды бір жерде сақтайды және оны іске қосады.

Бағдарламалау тілін құру 9 -қадам
Бағдарламалау тілін құру 9 -қадам

Қадам 9. Алдыңғы жағындағы сканер мен талдағышты жазыңыз немесе сізге көмектесетін құралды табыңыз

Сонымен қатар, компиляторыңыз/аудармашыңыз пайдаланушыны қате бағдарламалар мен синтаксистік қателер туралы қалай ескертетіні туралы ойланыңыз

Бағдарламалау тілін құру 10 -қадам
Бағдарламалау тілін құру 10 -қадам

Қадам 10. Нысан кодын немесе аралық көріністі жазу үшін талдаушы ақпаратын қолданыңыз

Анализаторға AST жасаңыз, содан кейін үш мекенжай кодын немесе оның үлкен ағасы SSA көмегімен объект кодын AST -ден жасаңыз, содан кейін сіздің функцияларыңызды, жаһандық айнымалыларды және т.

Сондай -ақ, сіздің тіліңізге байланысты сіз өзіңіздің сабақтарыңыз үшін виртуалды көрсеткіш кестелерін немесе ақпараттық кестелерді құрғыңыз келуі мүмкін (рефлексияны немесе RTTI қолдау үшін)

Бағдарламалау тілін жасау 11 -қадам
Бағдарламалау тілін жасау 11 -қадам

Қадам 11. Барлығын біріктіретін орындаушы немесе код генераторын жазыңыз

Бағдарламалау тілін жасау 12 -қадам
Бағдарламалау тілін жасау 12 -қадам

Қадам 12. Тілді тексеру үшін көптеген тестілік бағдарламалар жазыңыз

Сіз компилятор сіздің анықтамаңыздағы барлық нәрсені қабылдайтынын және оның сыртындағылардың барлығын қабылдамайтынын көру үшін формальды грамматиканың ауыртпалығын түсіретін бағдарламалар жасағыңыз келеді

Бағдарламалау тілін жасау 13 -қадам
Бағдарламалау тілін жасау 13 -қадам

Қадам 13. Пайдаланушы өзінің бағдарламаларын қалай күйге келтіретінін қарастырыңыз

Бағдарламалау тілін жасау 14 -қадам
Бағдарламалау тілін жасау 14 -қадам

14 -қадам. Егер сіздің тіліңіз стандартты кітапхананы пайдаланса, сіз оны жазғыңыз келеді

Қажет болса, қоқыс жинағышпен немесе жұмыс уақытының басқа мүмкіндіктерімен бірге.

Атап айтқанда, егер сіз компилятор жазсаңыз, пайдаланушы кодын іске қосуды бастау үшін сізге операциялық жүйе орындайтын код қажет болады (мысалы, барлық жаһандық айнымалыларды бөлу)

Бағдарламалау тілін жасау 15 -қадам
Бағдарламалау тілін жасау 15 -қадам

15 -қадам. Өз тіліңізді, оның сипаттамасын және онда не істеуге болатынын көрсететін мысалдарды жариялаңыз

Қолданыстағы кітапханалармен, тілдермен қалай біріктіруге болатынын және жұмыс уақытының мүмкіндіктерін және/немесе стандартты кітапхананы қалай пайдалану керектігін құжаттауды ұмытпаңыз

Бейне - бұл қызметті пайдалану арқылы кейбір ақпарат YouTube -пен бөлісілуі мүмкін

Кеңестер

  • Сіздің тіліңізді жобалаудан бастаңыз және сіздің конструкцияңызға қатысты сұрақтарға немесе мәселелердің барлығына (немесе көпшілігіне) қанағаттанғанша жауап бермейінше, ешқандай код жазбаңыз, себебі дизайнды ертерек өзгерту оңайырақ.
  • Сіздің компилятор/аудармашы үшін мақсатты платформаны (операциялық жүйе мен кітапханалар) біліңіз, өйткені сіз оны қолданып, оны басқарасыз.

Ескертулер

  • Егер сізге шынымен де жаңа тіл қажет болса және басқа тілдерде жоқ жаңа тілде не бар болса, соны ойлаңыз (Мүмкіндіктер жиынтығы немесе бір функция болуы мүмкін).
  • Егер сіз не істеп жатқаныңызды білмесеңіз, тілдерді жазу қиын. Бұл да көп жаттығуды қажет етеді.
  • Тілдік дизайнға біраз уақыт жұмсауға дайындалыңыз, себебі сіз компиляторды жазып, дизайн нүктесінен өткеннен кейін тіліңізді өзгертуге мүмкіндігіңіз болмайды.
  • Сіздің тіліңіз X, Y тілі мен Z тілінің одағы болады деп айту сияқты сіздің ерекшеліктеріңізді бірнеше тілдердің одағына негіздеуге тырыспаңыз. Тарих бізге осылай жасалған тілдердің ешқашан табысқа жетпейтінін көрсетті. немесе әркім С негізіндегі бір нәрсенің орнына PL/1 бағдарламалауы мүмкін.

Ұсынылған: