Jabse Ink Home
804 
 Ink Home • Jabse •
  ВходПишиRSS КалендарКапсулиАвтори 804 • Статии 30123 • Коментари 1430  
аз мога повече | дистанционно обучение | ЦПО "Онлайн" | онлайн | microsoft | sql | linux | курсове | бижута | системно администриране | cisco | java | vmware | дистанционно | онлайн магазин | София | Magniflex | безплатна доставка | здраве | www.lekuva.net | промоция | iSleep | хамали |
Най-четени : днес • вчера • 7 дни • 30 дни • случайна история • статия на деня

Можеш ли да популяризираш езика си за програмиране с OMeta?

   от 11-07-2013 13:54  статия на деня Можеш ли да популяризираш езика си за програмиране с OMeta? : Jabse.InK (5.6/10) 530
УВОД

Преди доста време бях измислил и реализирал на C интерпретаторен език за програмиране. Това което исках обаче, беше не просто да го има, а и да има хора, които да го ползват. Определено тогава не се справих с подобна задача, въпреки че уредих езикът да бъде представен подобаващо в тогава доста посещаван форум.

Днес си припомних онова желание и реших да търся решение. Това да запознаеш хората с творението си (дори и това да са най-подходящите хора програмисти) НЕ Е ДОСТАТЪЧНО. Основната задача е да ги зарибиш, т. е. да ги накараш поне по някакъв начин те да започнат да ползват езика ти.

Основен проблем при новите езици за програмиране са много. Примерно трябва да се учи синтаксис. Трябва да се сваля среда за програмиране, където да се използва езика. Трябва да си изградиш навик да ползваш езика. Все неща, които искат много време и усилия. Решението, което виждам на този проблем е само едно - всичко трябва да се прави по възможно най-лесния начин. В нашия случай имаме език за уеб програмиране от страна на сървъра и затова по-нататък ще разглеждаме само езици с такова предназначение.

И така. Синтаксисът на цял език за програмиране е нещо твърде голямо. Затова ще се започва само с туториял, който да представя някои атрактивни приложения на самия език. Изпълнението ще трябва да се осъществява в браузъра и то в сайта на езика - неефективно решение, но удобно при обучение. Но накрая езикът ти ще трябва да може лесно да се използва! Как? Ако бъде лесно инсталиран на хостинг, тогава той евентуално ще може да се интегрира с наличните ти вече написани програми - отново за целта трябва да се създаде подходящо API. С времето - ако езикът допадне на използващия го - този език ще превежда все по-голяма част от функционалността на сайта ти, докато накрая можеш да преминеш изцяло на него. Именно заради това е хубаво езикът да има реализация на php.

Има и още един проблем. Всъщност хората, които учат непопулярни нови езици за програмиране дали не правят това единствено от творчески намерения? Тези хора много често не са удовлетворени от масово разпространените езици и е напълно възможно да не харесат и твоя език за програмиране. Но щом са почнали да го учат, то вероятно нещо подобно и търсят. Затова възможността самите те да мога да променят синтаксиса на езика ти ще е съществено предимство.

Да обобщим - искаме езикът ти да може да се стартира в браузъра, т. е. трябва да имаш реализиран интерпретатор. Удобство ще бъде, ако този интерпретатор е на javascript, защото така потребителят ще може да експериментира с езика ти, дори и когато няма интернет връзка. След това езикът ти трябва да се реализира и на php, за да може да се използва от потребителя в преходен период - от php към твоя език. Накрая трябва да позволим на потребителя да се "гаври" с езика ти, т. е. да има възможност да модифицира лесно лесно синтаксиса и семантиката му.



ОТКРИТИЕТО OMeta

И ето, че изглеждащите нерешими по-горе проблеми могат да се решат с помощта на една разработка. OMeta е нов език за програмиране, който е базиран на "Parsing Expression Grammars", но не е само лексичен анализатор и синтактичен анализатор. Моделът на езика е така конструиран, че обработения (парсвания) резултат да се обработва с езика приемник.

Няма да се впускаме в подробности относно езика. Само ще отбележим, че една доста добра статия по случая е следната:
http://www.moserware.com/2008/06/ometa-who-what-when-where-why.html
Там идеята на езика е представена доста подробно.

Тук само ще видим, как този език може да помогне при решението на нашата конкретна цел. Първо чрез OMeta може много лесно да се реализира граматиката на нашия език. Реализацията ще е зависима от езика основа на OMeta, т. е. този върху който самия интерпретатор на OMeta се изпълнява и този който осъществява обработката на правилата. Именно тази обработка ще се наложи да я осъществим по два начина: реализация на javascript и такава на php. Леко двойна работа, но не особено голяма, защото самият език OMeta ще осъществи по-голямата част от реализацията на цялостния интерпретатор.

Това че използваме OMeta означава, че ще имаме нужда от негова интерпретация на javascript (нещо, което е реализирано от автора на OMeta) и такава на php (която да се ползва при хостинг версията). Самият език OMeta всъщност и РЕШАВА един от поставените ни въпроси веднага - как да дадем възможност на потребителя да променя езика ни. Давайки на потребителя синтаксиса на езика ни той ще може да го модифицира - удобно и лесно, като така той ще задоволява желаната адаптация към неговите нужди.



КАКВО СЛЕДВА?

Като начало реализацията на OMeta е добре да бъде реализирано, за да може да има споменатия софтуер за сървъри.

Друга важна определено по-важна задача е популяризирането на самия OMeta. Трябва да се напишат множество туторияли (такива дори на английски не намерих). Трябва да се създаде група, която да популяризира широко идеята представена в тази история. Наистина хората пишещи езици за програмиране, както и тези които търсят да ползват подобни - не се срещат под път и над път и затова трябва много старателно да бъдат търсени!!!



автор : Иван Иванов • 1 коментар • 3140 прочитания • 1422 уникални

таг : програмиране езици разработка




Иван Иванов
( 1 ) 11-07-2013 14:01 ч.
Това е първата ми статия. Надявам се да не ми е и последната... Всичко зависи от това, дали ще успея добре да я популяризирам!!!
Коментар :


Твоето име : Вход

Въведете числото : триcтa ceдeмдeceт и ceдeм      


© Jabse 2026 • eServiceinfo.com • onTap.bg • PoBlizo.com •