Своя реализация G

Делись идеей, получай поддержку и критику!

Re: Своя реализация G

Postby Vitekkz88 on 21 Oct 2014, 19:48

IvanLis,
Как говориться "Чем бы дитя не тешилось - лишь бы не руками"

Тут скорее так подойдет: "Чем бы дитя не тешилось - лишь бы не вешалось".
Коллега Данил, Вам аллегория ясна?
К примеру установите LabVIEW на свежую машину и не перезагружайтесь, откройте исходник с потоками и попробуйте запустить. Ошибка: не удалось подключиться к GPIB службе

Может такие фишки на линуксе происходят?Под виндой полёт нормальный и такого не наблюдалось.
Данил
Borjomy_1 Сегодня, 14:00
Как только вам понадобится сделать компилятор, нормально поддерживающий хотя-бы минимум предложенного функционала, поймете - в одиночку эту работу делать бесполезно.

это же как пить дать,не?Исключение:работать над этим за реальные $$$(и не надо о перспективах и полезности. Польза пользой - а кушать хочется каждый день).
IvanLis,
В первую очередь определитесь, что Вы хотите. Транслятор или компилятор, судя по постам, именно транслятор

По-большому счету - не суть. Даже если это будет транслятор - то моментально возникает вопрос об его оптимальности.
А че, вон в Simulink(графическое дополнение к MatLAB),по-моему с 2008-го года, есть встроенный HDL-кодер. Казалось бы - это крутая примочка для ПЛИС-разработчиков.А вот не такая уж и крутая на самом деле. Не знаю ни одного разработчика ПЛИС,который рисует серьезный проект в Simulink,генерит код(описание) по модели и с успехом заливает всё это дело в кристалл. Какие-то отдельные части проекта можно так сделать...да и то,эти части ручками на VHDL проще самому написать. И по сей день MathWork пилят этот кодер и допиливают,чтобы мог Simulink-модель более-менее адекватно и оптимально транслировать в VHDL-код. Очень сомневаюсь,что в MathWork над такой задачей новатор-энтузиаст работает.
Чтобы определиться с вопросом "а надо ли?",то вот картинка на закусь(квадрат Декарта).
Attachments
decart.png
decart.png (39.02 KiB) Viewed 2386 times
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
leader
leader
 
Posts: 979
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 268
hardware I/O VIP

Re: Своя реализация G

Postby AndreyDmitriev on 21 Oct 2014, 22:37

Данил wrote:Не понимаю, почему все хочется подчеркнуть чужую некомпетенцию в чём либо, оправданно или нет. Я предлагаю серьезную идею, которая не находится на грани фантастики


Коллега Данил, тут дело не в этом. Для написания компилятора, скажем так, требуется некоторый опыт в разработке программного обеспечения. Когда необходимый объём опыта набирается, то вопросы, подобные вашим уже не задаются. Сам факт задавания вопроса в такой форме говорит об отсутствии опыта и необходимого объёма знаний.

Вы же пишете
Данил wrote:Подумал над такой не сложной вещью, как написать свой компилятор


Это не "несложная вещь", а довольно объёмный проект. Ничего невозможного тут нет, кроме того это прекрасное упражнение в программировании (при наличии достаточного количества времени). Графический редактор для редактирования кода - тоже штука нетривиальная, на которую придётся кучу времени положить.
Ещё раз - в основе компиляторов лежат довольно фундаментальные принципы, эта теория довольно хорошо описана. Для начала имеет смысл обложиться кучей учебников. Затем посмотреть на уже имеющиеся решения. И лишь затем сделать свой велосипед.

Ну вот ещё тут почитайте:
http://www.ni.com/white-paper/11472/en/
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

Re: Своя реализация G

Postby Данил on 22 Oct 2014, 06:41

IvanLis wrote:Как говориться "Чем бы дитя не тешилось - лишь бы не руками" :wink:

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

Посмотрите проект FLProg (http://flprog.ru/), там решается подобная задача (http://flprog.ru/FLProg/pid218088913/si ... i217633534).
Можете пообщаться с автором, может найдете общий язык.

Наличие свободного времени это хорошо, а еще лучше если Вы его будите расходовать с пользой :super:

Я прошу прощения, но я в основном программист под linux, и мне близка идеология gcc, так вот руководствуясь ей, компиляции - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, примерно как в вики написано.
Так вот в этой теме я предлагаю обсуждать, как же должен работать компилятор, что бы в конце концов можно было реализовать всю систему языка G.
Подумал тут над параллелизмом внутри одного процесса, если действительно программе необходим доступ ко всей собственной памяти как из всех параллелей, можно разбить код параллелей на "единицы кода" , - сегменты кода, которые требуют примерно равное время на исполнение, и перепрыгивать метками из одной части к другой по всем параллелям, может кто предложит пути проще?
Данил
beginner
beginner
 
Posts: 27
Joined: 20 Oct 2014, 10:35
LabVIEW Version: 2010 linux
Karma: 10

Re: Своя реализация G

Postby AndreyDmitriev on 22 Oct 2014, 09:10

Данил wrote:Я прошу прощения, но я в основном программист под linux, и мне близка идеология gcc, так вот руководствуясь ей, компиляции - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, примерно как в вики написано.

Это как бы справедливо не только для linux/gcc но и для любой другой пары ОС/компилятор, да хоть Windows/MSVC.

Данил wrote:Подумал тут над параллелизмом внутри одного процесса, если действительно программе необходим доступ ко всей собственной памяти как из всех параллелей, можно разбить код параллелей на "единицы кода" , - сегменты кода, которые требуют примерно равное время на исполнение, и перепрыгивать метками из одной части к другой по всем параллелям, может кто предложит пути проще?


Вы не сможете статическим анализом определить время исполнения. Кроме того, при таком решении вы лишитесь возможности параллельного исполнения в пределах одного модуля. Я бы пошёл по пути создания множественных потоков - опять же примерно так, как LabVIEW поступает. Мне смутно кажется, что в области многозадачности и параллелизма вы тоже немного "плаваете". В дополнение к списку литературы про компиляторы я могу ещё порекомендовать прочитать Эндрю Таненбаума " Операционные системы. Разработка и реализация". Это вообще классика.

Ладно, давайте с другой стороны зайдём.
Вы это на чём писать собираетесь?
Как это будет выглядеть с точки зрения конечного пользователя? Как в LabVIEW - передняя панель/блок-диаграмма? Либо оставите только диаграмму и ввод/вывод будете осуществлять из консоли?
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

Re: Своя реализация G

Postby Данил on 22 Oct 2014, 11:33

Как это будет выглядеть с точки зрения конечного пользователя? Как в LabVIEW - передняя панель/блок-диаграмма? Либо оставите только диаграмму и ввод/вывод будете осуществлять из консоли?

Оставлю только диаграмму, а вывод оставлю за программистом, хоть stdin/stdout, хоть пусть к x11 серверу подключается или средствами ShellAPI окна создаёт. С параллелизмом пока успокоюсь, почитаю.
Начитался про потоки в СИ, проект вполне жизнеспособен. Начну с самого компилятора, без редактора. Сам компилятор буду писать на LabVIEW, потом, портирую его для своего компилятора. :super:
Скоро выложу пару картинок характеризующих принцип работы моего компилятора.
Данил
beginner
beginner
 
Posts: 27
Joined: 20 Oct 2014, 10:35
LabVIEW Version: 2010 linux
Karma: 10

Previous

Return to Проекты

Who is online

Users browsing this forum: No registered users and 2 guests

cron