1 | |
Разработка языков программирования13.06.2017, 14:10. Показов 1024. Ответов 10
Метки нет (Все метки)
Добрый день, уважаемые форумчане. С недавнего времени меня заинтересовала разработка компиляторов и создание языков программирования в чисто академических (т. е. учебных) целях для расширения своего кругозора и повышения профессионального уровня. Пришел сюда к вам за советом: Какой материал посоветуете к прочтению и изучению и что можно реализовать в качестве первого "языка"? С программированием, как таковым, знаком, сейчас изучаю C для рабочих нужд.
0
|
13.06.2017, 14:10 | |
Ответы с готовыми решениями:
10
Перечислите все плюсы и минусы языков программирования Perl и PHP 4 и 5 поколения языков программирования Сколько языков программирования в кс 1.6 ? С++ 4 и 5 поколение языков программирования |
13.06.2017, 16:51 | 2 |
Смущает только одно слово:
Вы хотите компилировать в куда? В ассемблер, как взрослые? Подо все целевые платформы, число которых легион? Или в байт-кот какой-нибудь виртуальной машины, что уже более здраво? Существующей (ЖВМ, БЕАМ и т.п.) или собственной пока не написанной? Или в какой-нибудь целевой язык типа С, из которого потом сишным компилятором лепить экзешники подо все целевые платформы из пункта выше? Или в жаву/паскаль/лисп? Или вы все-таки написали это не подумав? И вас интересует не компиляция, а интерпретация? ЗЫ все будут советовать уйму книг по сабжу, начиная с Книги дракона, и прочее море подобного. Но я посоветую СИКП / Лисп ин смалл пиесез, и написать известно что Хотя, можете начать с чего попроще, типа Бэйсика.
1
|
13.06.2017, 18:22 [ТС] | 4 |
_Ivana, планируется, конечно, компиляция в какую-нибудь VM (JVM или Эрланговскую) и попробовать просто в asm (для развлечения) и, конечно же, хотелось пощупать и интерпретацию поэтому книжек пусть советуют много
Добавлено через 49 секунд KolodeznyDiver, писал до этого на Delphi/C#/Java, но из-за смены профиля работы теперь изучаю C
0
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
08.07.2017, 11:33 | 5 |
Видимо, Ivana не только безграмотен, но и не совсем здоров, раз он помнит про мой проект в течение столь длительного времени и без устали распространяет клевету. Это очень глупо, поскольку враньё Ivana очень легко доказывается. Я пишу транслятор с нового языка в Common Lisp. Например, вот здесь находится старая версия лексера
https://bitbucket.org/budden/y... ew-default А вот фрагменты парсера: https://bitbucket.org/budden/y... ew-default То, что в качестве бек-энда используется Common Lisp, я никогда не скрывал. Но ведь есть Eiffel, который в большинстве случаев является транслятором и генерирует Си. Да и среди реализаций Common Lisp есть GCL, который реализован в виде транслятора. То есть - либо невежество, либо нездоровье, либо враждебность ещё по каким-то причинам. Я надеюсь, администрация данного форума услышит мою жалобу, как это бывало и раньше, и сотрёт указанное мной сообщение с клеветой. Добавлено через 1 минуту О, я вижу, что клевету уже стёрли. Спасибо! Добавлено через 43 минуты В наше время, как правило, не создают,а дорабатывают. Т.е., если хотите стать востребованным профессионалом, нужно научиться не создавать с нуля, а подхватывать и продолжать. Жаль, все острова в океане уже открыты и (почти) все программы по одному - два раза уже написаны. В такое время мы живём и здесь у нас нет выбора. Возможно, захотите присоединиться к моему проекту. Если нет - вот задачка, которая может оказаться интересной: Вот есть транслятор с JavaScript в Common Lisp https://github.com/akapav/js . Для меня он хорош тем, что позволяет использовать библиотеки под джаваскрипт, не испольузя сам джаваскрипт. Например, я использую библиотеку на джаваскрипт для обработки маркдаун - ей я генерирую документацию к Яру. Соответственно, задачи две: 1. Более-менее простая: Сделать, чтобы язык генерировал побольше именованных функций и поменьше анонимных лямбд. Лямбды довольно неудобно отлаживать. Может быть, удастся даже сделать файловый транслятор, который из файла на джаваскрипте генерирует файл на лиспе - в таком виде отлаживать полученный код гораздо удобнее. 2. Добавить в него последние новшества, введёные в javascript (ECMASCRIPT 2016) Заодно посмотрите, как он устроен. Например, всем создателям языков обычно слёту рекомендуют lex и yacc, но в реальных промышленно используемых языках они применяются далеко не всегда. Есть такая красивая методика, как pratt parser, в данном трансляторе применена некая разновидность этой техники. Вот статейка на эту тему, на базе которой я написал нынешний парсер выражений для Яра: http://journal.stuffwithstuff.... made-easy/ Если и это не подходит, вот вам совсем взрослая задача за взрослые деньги. https://github.com/flightaware/Tcl-bounties tcl/tk - тоже очень интересный с концептуальной точки зрения язык, хотя за правила подстановки строк я его не люблю. Но по возможностям метапрограммирования он оставляет позади и common lisp.
1
|
Curry
|
08.07.2017, 12:44
#6
|
Не по теме: Опять, как и в холиварах, всё скатыватся к лспу. Отписываюсь.
0
|
korvin_
|
09.07.2017, 19:18
#7
|
Не по теме: KolodeznyDiver, ты бы к психотерапевту обратился, пока не поздно, у тебя явно какая-то одержимость лиспом.
0
|
Curry
|
09.07.2017, 23:31
#8
|
Не по теме: korvin_, не к психотерапевту, а к психиатору (психотерапевт лечит соматические болезни через психику - Кашпировский) , я к нему регулярно хожу (к психиатору, а не Кашпировскому). Это он мне насоветовал каяццо. Нифига не помогло. Несмотря на это, данные там обещания я соблюдать буду. Раз уж дал.
0
|
korvin_
|
10.07.2017, 00:53
#9
|
0
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
19.07.2017, 22:22 | 11 |
aekuznecov, я могу и не в личку, у меня тут есть тема про этот проект, а описание есть на сайте проекта:
https://bitbucket.org/budden/yar Если незнакомы с JS, то и не надо знакомиться - есть и другие задачи. Сейчас вообще самое главное - найти нишу, где язык будет востребован, при этом чтобы можно было выйти на поле боя в лёгкой амуниции. У Яра есть два или три преимущества: он русскоязычный, у него под капотом очень мощная платформа CL и у него гораздо более простой синтаксис, чем у CL. Т.е. потенциально ниша должна найтись. Но другие языки уже давно захватили территорию и закрепились, поэтому предстоит нелёгкая борьба. Кроме того, до полноценного релиза ещё довольно далеко. На дальнейшие вопросы лучше всего отвечу в теме, посвящённой Языку.
1
|
19.07.2017, 22:22 | |
19.07.2017, 22:22 | |
Помогаю со студенческими работами здесь
11
Теория языков программирования Семантика языков программирования Сравнение Языков Программирования Последовательность изучения языков программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |