33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
1

Разработка языков программирования

13.06.2017, 14:10. Показов 1024. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане. С недавнего времени меня заинтересовала разработка компиляторов и создание языков программирования в чисто академических (т. е. учебных) целях для расширения своего кругозора и повышения профессионального уровня. Пришел сюда к вам за советом: Какой материал посоветуете к прочтению и изучению и что можно реализовать в качестве первого "языка"? С программированием, как таковым, знаком, сейчас изучаю C для рабочих нужд.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2017, 14:10
Ответы с готовыми решениями:

Перечислите все плюсы и минусы языков программирования Perl и PHP
Что может написать программист на Perl и чего не сможет написать программист на PHP

4 и 5 поколения языков программирования
Где можно найти информацию о названии темы. 3 страницы гугла с вышеприведенным тезисом изучено....

Сколько языков программирования в кс 1.6 ?
Сколько языков программирования было использовано для создания игры кс 1.6 ? больше трёх ?

С++ 4 и 5 поколение языков программирования
Является ли С++ языком 4 поколения? Пятое поколение определяет судьбу программистов С++ в...

10
4817 / 2278 / 287
Регистрация: 01.03.2013
Сообщений: 5,947
Записей в блоге: 28
13.06.2017, 16:51 2
Смущает только одно слово:
Цитата Сообщение от aekuznecov Посмотреть сообщение
компиляторов
Вы хотите компилировать в куда? В ассемблер, как взрослые? Подо все целевые платформы, число которых легион? Или в байт-кот какой-нибудь виртуальной машины, что уже более здраво? Существующей (ЖВМ, БЕАМ и т.п.) или собственной пока не написанной? Или в какой-нибудь целевой язык типа С, из которого потом сишным компилятором лепить экзешники подо все целевые платформы из пункта выше? Или в жаву/паскаль/лисп?

Или вы все-таки написали это не подумав? И вас интересует не компиляция, а интерпретация?

ЗЫ все будут советовать уйму книг по сабжу, начиная с Книги дракона, и прочее море подобного. Но я посоветую СИКП / Лисп ин смалл пиесез, и написать известно что Хотя, можете начать с чего попроще, типа Бэйсика.
1
Модератор
5046 / 3275 / 526
Регистрация: 01.06.2013
Сообщений: 6,803
Записей в блоге: 9
13.06.2017, 17:22 3
Цитата Сообщение от aekuznecov Посмотреть сообщение
С программированием, как таковым, знаком, сейчас изучаю C для рабочих нужд.
В смысле, до этого ни на каких языках не писали и знали что такое программирование "в общем"? Тогда советую изучИть его и набраться немножко опыта.
Но, если очень хочется, то тут много ссылок.
1
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
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

Не по теме:

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
психотерапевт лечит соматические болезни через психику - Кашпировский
Нет. Кашпировский тут совершенно не при чём.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
я к нему регулярно хожу (к психиатору, а не Кашпировскому)
Психиатор лечит клинических больных с тяжёлыми психическими заболеваниями.

0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
19.07.2017, 10:09  [ТС] 10
budden, а можете в личку описать Ваш проект? за идею с JS спасибо, я в нем не силен, но, думаю, было бы неплохо самому с ним познакомиться как и с CL.
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2017, 22:22
Помогаю со студенческими работами здесь

Теория языков программирования
Всех приветствую. Пожалуйста, порекомендуйте книги или ресурсы на которых можно почитать о...

Семантика языков программирования
Простите, если написал не в ту тему - толком просто не пойму в каком разделе можно об этом...

Сравнение Языков Программирования
Доброго времени суток, Уважаемые Форумчане! Я учусь в БГУИР (Минск) на факультете непрерывного и...

Последовательность изучения языков программирования
Добрый день! Я начала изучение программирования с абсолютного 0, и начала все это дело с js....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru