Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
5.10.2012, 10:10
Сообщение
#121
|
|
![]() тот самый Группа: Мод Сообщений: 13652 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
|
|
|
|
5.10.2012, 18:49
Сообщение
#122
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
|
5.10.2012, 19:29
Сообщение
#123
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
ЯВУ, как ЯВУ, ничего особенного. Счастье не в С и не в АСМ, а в их разумном сочетании. Да кто его знает... Если бы у Вас под ваши задачи всегда были библиотеки на АСМ, из макросов и подпрограмм — причем оптимизированные «как Вы любите» — точно Вам бы всё равно захотелось на Си? Точнее, захотелось бы, это само собой. Но, положа руку на сердце, точно ли в этом всегда был бы смысл? А если бы такое было для всех камней, на которых Вы работаете или только собираетесь? То есть, имена совместимые, а остальное адаптировано? Да еще и имена из Вашей предметной области, и адаптировано под неё же, там где это вообще имеет смысл? |
|
|
|
5.10.2012, 20:28
Сообщение
#124
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Если бы у Вас под ваши задачи всегда были библиотеки на АСМ, из макросов и подпрограмм — причем оптимизированные «как Вы любите»... Это невозможно. И не удобно. Поверьте, я уже пробовал. А если бы такое было для всех камней, на которых Вы работаете или только собираетесь? То есть, имена совместимые, а остальное адаптировано? Да еще и имена из Вашей предметной области, и адаптировано под неё же, там где это вообще имеет смысл? Беда в том, что чужими библиотеками я предпочитаю пользоваться, только в случае "большого" программирования. Там и без меня уже такой слой программного гумуса, что становится абсолютно фиолетово... А в случае МК текст после компилятора легко просматривается. То, что не устраивает по ряду причин - исполнятся на АСМ-е. Обычно не так уж и много... |
|
|
|
5.10.2012, 21:02
Сообщение
#125
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Это невозможно. И не удобно. Поверьте, я уже пробовал. Беда в том, что чужими библиотеками я предпочитаю пользоваться, только в случае "большого" программирования. Там и без меня уже такой слой программного гумуса, что становится абсолютно фиолетово... А в случае МК текст после компилятора легко просматривается. То, что не устраивает по ряду причин - исполнятся на АСМ-е. Обычно не так уж и много... Очень показательный ответ, спасибо. Весьма выпукло обрисовали. Однако, по последней части — не лишне ведь было бы, чтобы это «не так уж и много» — еще сократилось бы... Ну и не в этом дело. Я-то, пока еще память свежа, больше думаю о том «пороге вхождения» в программирование. То есть, для того, чтобы понять, как все просто в этих долбаных МК, мне пришлось, как Вы помните (всё на Ваших глазах происходило) не один год доки лопатить и книжки читать тоннами. А решилось всё как-то вечером, когда мы с Вами говорили, и Вы подтвердили, что МК именно такой простой и тупой, как я себе и представил уже к тому времени. Собственно, цель есть не наворачивать вокруг сложностей, а создать среду, которая упрощает в первую очередь самое вхождение в процесс, не отнимая возможностей тотального контроля за ним. Ну и не создавая ложного ощущения сложности. Как-то так. Вы-то, конечно, уже не помните, как обучались. А у меня ещё живо ощущение, что кто-то обвел меня тридцать три раза вокруг трех сосен, и я чудом не заблудился в них. Не хотелось бы, чтобы всё так проходили этот процесс, это первое. И второе — охота, чтобы входящие как бы видели «шестеренки», на которых всё крутится, причем через возможно меньшее число слоев разных и прослоек, как бы ни были эти слои прослойки красивы — ну их нахер. АСМ и без того красивый, а если будет организован алгоритмически как надо — то и вовсе. |
|
|
|
| Гость_MrYuran_* |
6.10.2012, 16:09
Сообщение
#126
|
|
Гости |
АСМ и без того красивый, а если будет организован алгоритмически как надо — то и вовсе. Так "ИС Дракон" Г.Тышова вроде как давно уже с асмом работать может, причем с разным. Подробности надо искать в обсуждениях, но можно и самому попробовать. Код ; Описание языка программирования ASM
; Имя файла описания - LangProgramm.ini ; Файл поместить в папку программы [Operator] ; Комментарий до конца строки Comment=; <Comment/> ; Метка Label=L<NN/>: ; 3=============== Для ассемблеров Asm=Yes ; Безусловный переход Goto=jmp L<NN/> ; АСМ команды перехода по Z или другому флагу jmpz=jmpnz L<NN/> ; 3====== |
|
|
|
6.10.2012, 16:49
Сообщение
#127
|
|
![]() тот самый Группа: Мод Сообщений: 13652 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Раз был табличный ассемблер образца 90-х - то это - тем паче должно быть.
|
|
|
|
6.10.2012, 20:06
Сообщение
#128
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Однако, по последней части — не лишне ведь было бы, чтобы это «не так уж и много» — еще сократилось бы... Таки - да. Но нет уверенности, что эта цель достижима вообще. Вот пример. Код 126: HalfFRQPer=HALF_MC_OSC/((ADCValue>>2)+QUARTER_ADC); 03EA 804030 mov.w 0x0806,0x0000 03EC DE0042 lsr 0x0000,#2,0x0000 03EE B03E80 add.w #0x3e8,0x0000 03F0 B80161 mul.uu 0x0000,#1,0x0004 03F2 212000 mov.w #0x1200,0x0000 03F4 2007A1 mov.w #0x7a,0x0002 03F6 07FF16 rcall 0x000224 03F8 884000 mov.w 0x0000,0x0800 ПРОПИСНЫМИ буквами обозначены константы. В принципе все предельно ясно. Первые две команды осуществляют сдвиг. Следующая за ними прибавляет константу. Потом мы с помощью команды умножения помещаем делитель в две последовательные ячейки по 16 бит. И, наконец, делимое запихиваем так же в две последовательные ячейки той же длины. А дальше вызываем подпрограмму деления: CODE __udivsi3: mul.uu w4,#0,w4 mov.w #0x20,w6 nextbit: sl.w w0,w0 rlc.w w1,w1 rlc.w w4,w4 rlc.w w5,w5 bset w0,#0 sub.w w4,w2,w4 subb.w w5,w3,w5 bra c, iterate add.w w4,w2,w4 addc.w w5,w3,w5 bclr w0,#0 iterate: dec.w w6,w6 bra nz, nextbit return Последней командой помещаем результат куда следует. И тут возникает вопрос. С какого бодуна компилятор вставил столь сложное деление? Когда это можно было сделать двумя командами repeat и div. Я перебрал все уровни оптимизации. Ни при каких условиях неплохой, в общем-то, компилятор С30 ни разу не воспользовался командой деления. В данном контексте мне было все равно по поводу столь расточительного использования ресурсов компилятором. Но в общем случае надо за ним следить. И не полагаться на то, что кто-то довел компилятор до совершенства, как предполагают некоторые. Собственно, цель есть не наворачивать вокруг сложностей, а создать среду, которая упрощает в первую очередь самое вхождение в процесс, не отнимая возможностей тотального контроля за ним. Ну и не создавая ложного ощущения сложности. Как-то так. Этого не будет никогда, если Вы хотите программировать не вдаваясь в тонкости архитектуры МК. Для этого, собственно, и создаются всякие РТОС. Но на самом деле, они лишь усложняют вопрос. Если говорить о ДРАКОН-е, то это скорее методика, чем технология. Некий костыль, позволяющий сделать первые шаги. Но после трех...пяти самостоятельных шагов, костыль уже не нужен. Он только мешает. Вы-то, конечно, уже не помните, как обучались. Отчего же - помню. Машина БЭСМ-4 в кодах. Затем АЛГОЛ на том же агрегате. А у меня ещё живо ощущение, что кто-то обвел меня тридцать три раза вокруг трех сосен, и я чудом не заблудился в них. Не хотелось бы, чтобы всё так проходили этот процесс, это первое. И второе — охота, чтобы входящие как бы видели «шестеренки», на которых всё крутится, причем через возможно меньшее число слоев разных и прослоек, как бы ни были эти слои прослойки красивы — ну их нахер. АСМ и без того красивый, а если будет организован алгоритмически как надо — то и вовсе. Этот процесс положено пройти всем. Иначе ничего не выйдет. Получится либо любитель РТОС на пустом месте, либо любитель ДРАКОН-а везде. Это одинаково плохо. Надо учиться мыслить параллельно. Тогда костыли в виде РТОС или ДРАКОН-а становятся не нужными. Что же касается графических языков, то человечество уже давно пошло своим путем, отличным от флоу-чарт. Простейший пример смотрим здесь. Сложнейший - здесь. Все остальное не имеет не малейшего коммерческого смысла и развиваться дальше не будет. |
|
|
|
6.10.2012, 23:26
Сообщение
#129
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Что же касается графических языков, то человечество уже давно пошло своим путем, отличным от флоу-чарт. Простейший пример смотрим здесь. Сложнейший - здесь. Все остальное не имеет не малейшего коммерческого смысла и развиваться дальше не будет. Наверное, не всё человечество. Эти примеры, особенно первый, довольно интересны. Но если сравнивать их про интересности, то и то, о чем я думаю, не менее интересно. Да и кто сказал, что нельзя взять лучшее от многого? Отчего не добавить наглядности, где это возможно? Слава тем, кто варит все это без подпорок просто в мозгах. Но если кто-то делает тот же результат с подпорками — кто запретит? И.. я не уверен, что нужно целиком замыкаться на идее «сделать всё строго по одному принципу». Из попыток такой строгости обычно выходят вещи, удобные в чем-то одном, и неудобные в другом. Я бы сочетал все, что возможно, для одной цели. Ну да ладно, это тема довольно отдельная, а я сегодня что-то устал уже. Вероятно, пора просто спать. PS можно же принять и такую позицию, что и те примеры как бы визуализации, что Вы привели — тоже не нужны, был бы Си и опытный программист. Ну тогда можно считать ДРАКОН просто еще одним языком, и говорить просто о его портировании на разные платформы. А то, какие там удобства и какие недостатки — это уже обсуждаемо. Конечно, можно простоту, наглядность и понятность считать настолько большим недостатком, что достоинства уже и не нужны, я писал об этом, кажется, в сливошной... Но рассуждать гипотетически мы можем, вдруг ещё есть недостаток? Например, мне наглядность Си неочевидна, значит, для меня её там пока и нет. Для чего-то пишут люди всякие визуальные среды... Но и при их написании им тоже тяжело, опять без наглядности... А тут, если охота вплотную к предметной области придвинуться — можно это делать на том же языке, но это, может, проще будет... То есть, Ladder Logic и CoDeSy, или подобные им — могли бы быть уже надстройкой сверху, или, говоря иначе — могли бы быть написаны и на ДРАКОН`е. Как-то так примерно. Хотя всё это уже дальняя перспектива, кто его знает, как оно будет. |
|
|
|
7.10.2012, 0:47
Сообщение
#130
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Наверное, не всё человечество. Безусловно, не все человечество. А только лишь та его часть, которая реально проектирует автоматизированные заводы и фабрики. Эти примеры, особенно первый, довольно интересны. Но если сравнивать их про интересности, то и то, о чем я думаю, не менее интересно. Да и кто сказал, что нельзя взять лучшее от многого? А никто не говорит о том, что лучше (интереснее), а что хуже (менее интересно). Речь о том, что для неподготовленных к большому программированию юзеров уже все сделано. Т. е. разработано, выпущено, отлажено на них же в течение порядка 40 лет. И никто за просто так ничего менять не будет. Отчего не добавить наглядности, где это возможно? Слава тем, кто варит все это без подпорок просто в мозгах. Но если кто-то делает тот же результат с подпорками — кто запретит? И.. я не уверен, что нужно целиком замыкаться на идее «сделать всё строго по одному принципу». Из попыток такой строгости обычно выходят вещи, удобные в чем-то одном, и неудобные в другом. Я бы сочетал все, что возможно, для одной цели. Дык, в CoDeSys уже все это сделано. Там 5 различных языков. На все вкусы. А начиная с версии 3 уже можно добавлять свою нетленку на С и С++. В том числе и в ООП стиле. PS можно же принять и такую позицию, что и те примеры как бы визуализации, что Вы привели — тоже не нужны, был бы Си и опытный программист. Цель подобных языков и их систем - программистом должен быть неподготовленный к этому делу юзер. Механик, например. Или технолог. А здесь С не подходит. Здесь нужны привычные образы. Аналогия с реле подходит для большинства. Ибо тут все прямо из жизни. Выключатели и лампочки есть у каждого. Ну тогда можно считать ДРАКОН просто еще одним языком, и говорить просто о его портировании на разные платформы. А то, какие там удобства и какие недостатки — это уже обсуждаемо. ДРАКОН - это язык высокого уровня, однозначно. Сделать компилятор с него в промежуточный код можно. Но кто за это будет платить? Во всех смыслах. Пусть покажут коммерческую сторону этого дела. То есть, Ladder Logic и CoDeSys, или подобные им — могли бы быть уже надстройкой сверху, или, говоря иначе — могли бы быть написаны и на ДРАКОН`е. Как-то так примерно. Хотя всё это уже дальняя перспектива, кто его знает, как оно будет. Написание компиляторов - удел профессиональных программистов. И целая наука о языках. ДРАКОН там не при делах. Рулит С и С++. Может быть ЛИСП или Пролог. Не знаю... Ибо создатели компиляторов возможности этих языков знают досконально. Допускаю, что не только этих. |
|
|
|
7.10.2012, 1:21
Сообщение
#131
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Ну что же, потихоньку техзадание определяется.
Препятствия названы всё больше мнимые, либо, если будет удобнее, можно называть их преодолимыми. Но в остальном — стоит писать планы, и прежде всего — надо бы глянуть стандарт языка, если он есть. А если нет — надо его писать. Это не так сложно, пока есть только одна реализация, потому что основная сложность — всегда согласование разных реализаций, если я ничего не путаю. Опять же, с стандарте заранее можно учесть особенности целевой платформы (платформ). Это тоже чему-то, да поможет. В общем, становится всё интереснее. Что до компилятора(ов) — может найтись довольно неожиданных подходов. Если уже не.... |
|
|
|
7.10.2012, 15:53
Сообщение
#132
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Ну что же, потихоньку техзадание определяется. Препятствия названы всё больше мнимые, либо, если будет удобнее, можно называть их преодолимыми. Если бы речь шла о редакторе Ladder Logic, а так же генераторе кода из-под него, то я охотно принял бы в этом деле участие. Поскольку знаю куда, зачем и приблизительно когда это дело можно пристроить. Что касается ДРАКОН-а, то по моему скромному мнению, занятие сие бесперспективное. Хотя меня можно переубедить. Но для этого нужны весьма весомые аргументы. Но в остальном — стоит писать планы, и прежде всего — надо бы глянуть стандарт языка, если он есть. А если нет — надо его писать. Это не так сложно, пока есть только одна реализация, потому что основная сложность — всегда согласование разных реализаций, если я ничего не путаю. Опять же, с стандарте заранее можно учесть особенности целевой платформы (платформ). Это тоже чему-то, да поможет. В общем, становится всё интереснее. На самом деле ничего интересного в этом нет. То, о чем Вы пишете - тяжелый изнурительный труд и не для одного человека. Я не понимаю - какова цель затеваемого Вами грандиозного проекта. Если с Ladder Logic мне все понятно, то с ДРАКОН-ом - нет. Если есть такая возможность, то прошу разъяснить. Что до компилятора(ов) — может найтись довольно неожиданных подходов. Если уже не.... Боюсь, что все неожиданные подходы уже давно кем-то опробованы. В свое время на этом поле толклось много неординарного народа. В результате процесс создания компиляторов более менее формализован. Базовый путь создания компилятора можно посмотреть здесь. |
|
|
|
7.10.2012, 16:45
Сообщение
#133
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Я не понимаю - какова цель затеваемого Вами грандиозного проекта. Если буду что-то затевать, то единственно с целью избавиться от грандиозности. Есть некоторый шанс, что именно это и есть возможность получить. Более подробно пока нечего сказать, потому что останется написанным, а мысли ещё не окончательные. Но хоть бы и были окончательные, то едва ли будут одобрены. Потому что это смесь из маркетинга и техники, а мы ж как бы не торговцы. То есть, не то что мне интересен какой-то профит на теме, строго наоборот. Просто я тут интересовался у продавцов камней, пронаблюдал некоторую очень занятную тенденцию, а у меня рефлекс такой есть — сразу прорисовывается контур некоего бизнес-плана, даже когда речь не идет о деньгах... Кстати, Вы там давеча озвучивали известную тему о том, что на Си можно с контроллером делать не всё, и не всегда прозрачно, так? Под прозрачностью имею в виду, что не только нет необходимости точно знать, что и где происходит в железе, и в какой регистр что поехало, но иногда и почти нет возможности этим управлять, можно только грустно посмотреть на результат. |
|
|
|
7.10.2012, 18:02
Сообщение
#134
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Просто я тут интересовался у продавцов камней, пронаблюдал некоторую очень занятную тенденцию, а у меня рефлекс такой есть — сразу прорисовывается контур некоего бизнес-плана, даже когда речь не идет о деньгах... Вот в этом месте я хочу Вас переубедить. Дело в том, что пользователи камней в чистом виде будут сокращаться, как класс. А вот число пользователей чудо-коробок будет расти. И простейший язык этих коробок - это отнюдь не ДРАКОН. Поверьте естествоиспытателю. Я достаточно долго проверял LD-MICRO на живых людях. Результаты - куча разных полезностей, слепленных этими людьми. Среди них стабилизатор сети на симисторах. Кстати, Вы там давеча озвучивали известную тему о том, что на Си можно с контроллером делать не всё, и не всегда прозрачно, так? Под прозрачностью имею в виду, что не только нет необходимости точно знать, что и где происходит в железе, и в какой регистр что поехало, но иногда и почти нет возможности этим управлять, можно только грустно посмотреть на результат. Но у Вас всегда остается возможность исправить сию несправедливость. На АСМ-е. Грамотно замесить С и АСМ очень просто. P. S. Готов согласиться на смесь Ladder Logic и ДРАКОН в одном флаконе. Получится что-то вроде CoDeSys, но лишь с двумя языками. |
|
|
|
7.10.2012, 19:32
Сообщение
#135
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
P. S. Готов согласиться на смесь Ladder Logic и ДРАКОН в одном флаконе. Получится что-то вроде CoDeSys, но лишь с двумя языками. я на примерно подобное и намекал. что мол не надо циклиться и подгонять под неподгоняемое, и для каждой работы найдется оптимальный инструмент LL я оценил, по наглядности — в суть, правда, не вник — тут у нас проблемки были с камнем, разгребали. Как всегда, оказались виноваты кривые ручки. Идем дальше, после поизучаю. |
|
|
|
19.10.2012, 18:41
Сообщение
#136
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
|
19.10.2012, 23:08
Сообщение
#137
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
|
|
|
|
20.10.2012, 0:08
Сообщение
#138
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
|
20.10.2012, 3:32
Сообщение
#139
|
|
![]() ДИКТАТОР Группа: Мод Сообщений: 23815 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
|
|
|
|
20.10.2012, 14:41
Сообщение
#140
|
|
![]() сундук ![]() ![]() ![]() Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
В куче всё, что написано, сначала кажду мелочь по кусочкам тестировал. Пробки заменили реальными расчетами. Таки важно как написано. Через ДРАКОН, или по-старинке? Если через ДРАКОН, то хотелось бы взглянуть на ДРАКОН схемы. Можно и в секретной комнате. Для общего развития, так сказать. |
|
|
|
![]() ![]() |
| Текстовая версия | Сейчас: 7.6.2026, 15:44 |