როგორ შევქმნათ პროგრამირების ენა: 15 ნაბიჯი (სურათებით)

Სარჩევი:

როგორ შევქმნათ პროგრამირების ენა: 15 ნაბიჯი (სურათებით)
როგორ შევქმნათ პროგრამირების ენა: 15 ნაბიჯი (სურათებით)

ვიდეო: როგორ შევქმნათ პროგრამირების ენა: 15 ნაბიჯი (სურათებით)

ვიდეო: როგორ შევქმნათ პროგრამირების ენა: 15 ნაბიჯი (სურათებით)
ვიდეო: როგორ გვქონდეს ულევი მეხსიერება და გეგაბაიტები 2024, აპრილი
Anonim

ბევრ ადამიანს აქვს სირთულეები ან იმედგაცრუება პროგრამირების ენებზე, რომლებსაც ისინი ყოველდღიურად იყენებენ. ზოგს სურს, რომ საქმეები უფრო აბსტრაქტულად იქნას განხილული, ზოგს კი არ მოსწონს იმ მახასიათებლების განხორციელება, რომელთაც სურთ იყვნენ "სტანდარტული". ხართ თუ არა IT პროფესიონალი თუ უბრალოდ ჰობისტი, ბევრჯერ შეიძლება აღმოჩნდეთ ახალი პროგრამირების ენის შექმნის სურვილი.

ნაბიჯები

შექმენით პროგრამირების ენა ნაბიჯი 1
შექმენით პროგრამირების ენა ნაბიჯი 1

ნაბიჯი 1. გაეცანით ტექნოლოგიას

თქვენ არ შეგიძლიათ შექმნათ პროგრამირების ენა, თუ არ იცით კომპიუტერის გამოყენება.

შექმენით პროგრამირების ენა ნაბიჯი 2
შექმენით პროგრამირების ენა ნაბიჯი 2

ნაბიჯი 2. გაეცანით ტერმინოლოგიას

შემდგენლები ხშირად იყენებენ უცნობ ტერმინოლოგიას. გაგრძელებამდე წაიკითხეთ შემდგენლები. დარწმუნდით, რომ იცოდეთ ყველაფერი, რაც უნდა იცოდეთ.

შექმენით პროგრამირების ენა ნაბიჯი 3
შექმენით პროგრამირების ენა ნაბიჯი 3

ნაბიჯი 3. გადაწყვიტეთ რა პრობლემას აგვარებს თქვენი ენა

ის დომენის სპეციფიკურ პრობლემას ეხება თუ ზოგადი დანიშნულების ენაა?

შექმენით პროგრამირების ენა ნაბიჯი 4
შექმენით პროგრამირების ენა ნაბიჯი 4

ნაბიჯი 4. დაფიქრდით თქვენი ენის სემანტიკაზე და მის კონცეფციებზე

  • აპირებთ პირდაპირი მაჩვენებლის წვდომის უფლებას თუ არა?
  • როგორია თქვენი ენის მონაცემთა ტიპები?
  • ეს არის სტატიკური თუ დინამიური ენა?
  • როგორია თქვენი მეხსიერების მოდელი? აპირებთ ნაგვის შემგროვებლის გამოყენებას ან მეხსიერების ხელით მართვას? (თუ თქვენ იყენებთ ნაგვის შემგროვებელს, მოემზადეთ ამის დასაწერად ან არსებული ენის თქვენს ენაზე მორგებისთვის.)
  • როგორ აპირებთ გაუმკლავდეთ თანხმობას? აპირებთ გამოიყენოთ უბრალო ძაფის/ჩაკეტვის მოდელი ან რაიმე უფრო რთული, როგორიც არის ლინდა ან მსახიობი მოდელი? (დღეისათვის კომპიუტერებს აქვთ მრავალი ბირთვი.)
  • არის თუ არა ენაში ჩადებული პრიმიტიული ფუნქციები თუ ყველაფერი ბიბლიოთეკიდან იქნება?
  • რა არის თქვენი ენის პარადიგმა ან პარადიგმები? ფუნქციონალური? Ობიექტზე ორიენტირებული? პროტოტიპი (JavaScript– ის მსგავსად)? ასპექტზე ორიენტირებული? შაბლონზე ორიენტირებული? ან რამე სრულიად ახალი?
  • როგორ ემთხვევა თქვენი ენა არსებულ ბიბლიოთეკებთან და ენებთან (ძირითადად C)? ეს წერტილი მნიშვნელოვანია, თუ თქვენ შექმნით დომენის სპეციფიკურ ენას.
  • დაბოლოს, ამ კითხვებზე ზოგიერთ პასუხს გასცემს მეორე საფეხური და დაგეხმარებათ შემდეგ ეტაპზე პასუხის გაცემაში.
შექმენით პროგრამირების ენა ნაბიჯი 5
შექმენით პროგრამირების ენა ნაბიჯი 5

ნაბიჯი 5. დაფიქრდით კონკრეტულ ამოცანებზე, რომელთაც ვინმეს უნდა შეეძლოს შეასრულოს თქვენი ენა

მაგალითად, "მათ შეიძლება მოინდომონ რობოტი მიჰყვეს ხაზს" ან "მათ სურთ შექმნან მასში შედარებით პორტატული დესკტოპის პროგრამები" ან "მათ სურთ შექმნან ვებ პროგრამები მასთან ერთად".

შექმენით პროგრამირების ენა ნაბიჯი 6
შექმენით პროგრამირების ენა ნაბიჯი 6

ნაბიჯი 6. ექსპერიმენტი გააკეთეთ სინტაქსის იდეებით (ენის ტექსტი) ზემოთ მოყვანილი მაგალითებისთვის

ფრთხილად იყავით, რომ შეინახოთ თქვენი ენა კონტექსტის გარეშე ენის კატეგორიაში ან რაიმე მის შიგნით. თქვენი ანალიზის გენერატორი და თქვენ მოგვიანებით დააფასებთ მას

შექმენით პროგრამირების ენა ნაბიჯი 7
შექმენით პროგრამირების ენა ნაბიჯი 7

ნაბიჯი 7. ჩამოწერეთ ფორმალური გრამატიკა სინტაქსისთვის

შექმენით პროგრამირების ენა ნაბიჯი 8
შექმენით პროგრამირების ენა ნაბიჯი 8

ნაბიჯი 8. გადაწყვიტეთ, იქნება თუ არა ენა ინტერპრეტირებული ან შედგენილი

რაც იმას ნიშნავს, რომ ინტერპრეტირებულ სამყაროში თქვენი მომხმარებელი, როგორც წესი, შეცვლის თქვენს პროგრამას რედაქტორში და გაუშვებს პირდაპირ თარჯიმანზე; შედგენილ სამყაროში, თქვენი მომხმარებელი შეცვლის თქვენს პროგრამას, ადგენს მას, შეინახავს შედეგად შემსრულებელს სადმე და გაუშვებს მას.

შექმენით პროგრამირების ენა ნაბიჯი 9
შექმენით პროგრამირების ენა ნაბიჯი 9

ნაბიჯი 9. დაწერეთ წინა სკანერი და ანალიზატორი ან იპოვეთ ინსტრუმენტი, რომელიც დაგეხმარებათ ამაში

ასევე, იფიქრეთ იმაზე, თუ როგორ გააფრთხილებს თქვენი შემდგენელი/თარჯიმანი თქვენს მომხმარებელს მცდარი პროგრამებისა და სინტაქსური შეცდომების შესახებ

შექმენით პროგრამირების ენა ნაბიჯი 10
შექმენით პროგრამირების ენა ნაბიჯი 10

ნაბიჯი 10. გამოიყენეთ parser ინფორმაცია ობიექტის კოდის ან შუალედური წარმოდგენის დასაწერად

მიეცით ანალიზატორს AST, შემდეგ შექმენით თქვენი ობიექტის კოდი AST– დან სამი მისამართის კოდის ან მისი უფროსი ძმის SSA გამოყენებით, შემდეგ შექმენით სიმბოლოების ცხრილი თქვენი ფუნქციების, გლობალური ცვლადების და ა.შ.

ასევე, თქვენი ენიდან გამომდინარე, შეიძლება დაგჭირდეთ ვირტუალური მაჩვენებლების ცხრილების ან საინფორმაციო ცხრილების შექმნა თქვენი კლასებისთვის (ასახვის ან RTTI მხარდაჭერის მიზნით)

შექმენით პროგრამირების ენა ნაბიჯი 11
შექმენით პროგრამირების ენა ნაბიჯი 11

ნაბიჯი 11. დაწერეთ შემსრულებელი ან კოდის გენერატორი, რომელიც ყველაფერს ერთმანეთთან დააკავშირებს

შექმენით პროგრამირების ენა ნაბიჯი 12
შექმენით პროგრამირების ენა ნაბიჯი 12

ნაბიჯი 12. ჩაწერეთ მრავალი სატესტო პროგრამა ენის შესამოწმებლად

გსურთ შექმნათ პროგრამები, რომლებიც ხაზს უსვამს თქვენი ფორმალური გრამატიკის ტვირთს, რათა ნახოთ, რომ თქვენი შემდგენელი იღებს ყველაფერს, რაც თქვენს განმარტებაშია და უარყოფს ყველაფერს, რაც მის გარეთ არის

შექმენით პროგრამირების ენა ნაბიჯი 13
შექმენით პროგრამირების ენა ნაბიჯი 13

ნაბიჯი 13. განვიხილოთ, თუ როგორ შეძლებს მომხმარებელი საკუთარი პროგრამების გამართვას

შექმენით პროგრამირების ენა ნაბიჯი 14
შექმენით პროგრამირების ენა ნაბიჯი 14

ნაბიჯი 14. თუ თქვენი ენა იყენებს სტანდარტულ ბიბლიოთეკას, მოგინდებათ მისი დაწერა

ნაგვის შემგროვებელთან ან გაშვების სხვა მახასიათებლებთან ერთად, თუ დაგჭირდებათ.

კერძოდ, თუ თქვენ წერთ შემდგენელს, დაგჭირდებათ კოდი, რომელსაც ოპერაციული სისტემა შეასრულებს, რათა დაიწყოთ მომხმარებლის კოდის გაშვება (მაგალითად, ყველა გლობალური ცვლადის გამოყოფა)

შექმენით პროგრამირების ენა ნაბიჯი 15
შექმენით პროგრამირების ენა ნაბიჯი 15

ნაბიჯი 15. გამოაქვეყნეთ თქვენი ენა, სპეციფიკაციებთან ერთად და რამდენიმე მაგალითი იმისა, თუ რისი გაკეთება შეგიძლიათ მასში

არ დაგავიწყდეთ დოკუმენტირება, თუ როგორ შეგიძლიათ ინტეგრირება მოახდინოთ არსებულ ბიბლიოთეკებთან, ენებთან და როგორ გამოიყენოთ გაშვების დრო და/ან სტანდარტული ბიბლიოთეკა

ვიდეო - ამ სერვისის გამოყენებით, ზოგიერთი ინფორმაცია შეიძლება გაზიარდეს YouTube- თან

Რჩევები

  • დაიწყეთ თქვენი ენის შემუშავებით და ნუ დაწერთ კოდს, სანამ არ დაკმაყოფილდებით და უპასუხებთ თქვენს დიზაინთან დაკავშირებულ ყველა კითხვას (ან უმეტესობას), რადგან დიზაინის შეცვლა უფრო ადვილია ვიდრე გვიან.
  • იცოდეთ თქვენი სამიზნე პლატფორმა (ოპერაციული სისტემა და ბიბლიოთეკები) თქვენი შემდგენლის/თარჯიმნისთვის, ბოლოს და ბოლოს, თქვენ აპირებთ მის გამოყენებას და მანიპულირებას.

გაფრთხილებები

  • იფიქრეთ იმაზე, თუ ნამდვილად გჭირდებათ ახალი ენა და რა აქვს თქვენს ენას ახალი, რაც სხვა ენებს არ გააჩნიათ (ეს შეიძლება იყოს თვისებების კომბინაცია ან ერთი თვისება).
  • ენების წერა რთულია, თუ არ იცი რას აკეთებ. ამასაც ბევრი პრაქტიკა სჭირდება.
  • მოემზადეთ გარკვეული დროის გასატარებლად ენის დიზაინში, რადგან თქვენ არ გექნებათ შანსი შეცვალოთ თქვენი ენა მას შემდეგ, რაც თქვენ დაწერთ შემდგენელს და გაივლით დიზაინის წერტილს.
  • ნუ ეცდებით თქვენი მახასიათებლების დაფუძნებას რამდენიმე ენის გაერთიანებაში, მაგალითად იმის თქმა, რომ თქვენი ენა იქნება X, Y და Z ენების კავშირი. ან ყველანი დაპროგრამებენ PL/1 -ს იმის ნაცვლად, რაც დაფუძნებულია C.

გირჩევთ: