|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:17 pm
| Автор |
Съобщение |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Закачки
Гледам че взехте да спорите, значи има нещо за изясняване. Изненадвам се, но ще подкрепя въпроса? И кой ни е платил за такова нещо? А, не - имам цветен спомен че казах че не е важно как ще го постигна (изпълнение на платка или симулатор), а че е възможно поне на теория - ти твърдеше (пак толкова цветно) че е НЕВЪЗМОЖНО (под невъзможно аз разбирам нещо което няма нито един известен начин да го направиш - а ти сам показваш поне един). Но ме хвана че ако е за 1млн все пак ще се хвана да го проиграя - защо мислиш че около 50 пъти повторих в тая тема че искам пълната история на събитията от ресета до въпросния момент? Ако беше по-скромен фонда бих хванал документацията и ще се надявам да отговаря на кода и да е достатъчно пълна. Числото "3 млрд" беше за тежест - надявах се че в пример с няколко последователности, всяка с по няколко събития ще успея да покажа тезата си, та съответно да не се налага да ходим до милиардното за да приемем че е вярно. И пак признавам че ако беше избълвал 3 млрд нямаше да се навия само за 1 млн. Мисля че бягаме от съвсем базовото ми твърдение - а то беше че до какъв стейт е достигнала която и да е определена система с памет, е определено еднозначно от входните събития (под "определена система" визирам някакво устройство с определен хардуер, което е флашнато с определен софтуер, и нито хардуера, нито софтуера му се сменя). По друг начин казано същото - колкото пъти и да ресетвам тая система, или 1000000 други копия (същата платка със същия софтуер), при дадена последователност от събития всичките, всеки път, ще напълнят паметта си с едно и също до последния бит, и ще направят една и съща реакция на следващия стимул (и по-следващия, и по-по-следващия...) Т.е. наличието на памет не прави една система "НЕПРЕДВИДИМА" - цитирам те по памет. Само излгежда такава ако нямаш идея как да събереш информацията и да подходиш за да я предвидиш - но по същата логика и светофара е непредвидим и някоя блондинка да очаква след зеленото да светне ... синьо. Едит: да "предвидя" какво ще направи една система значи да кажа "ако сега натиснеш червеното копче ще светне жълтата лампа". Ако знам алгоритъма, и знам състоянието на променливите (т.е. паметта/стейта) мога да го направя - разбира се че ще проуча кода за да дам верния отговор. А стейта мога да го изчисля след сложно симулиране на всички събития, или да боцна jtag-а и да ъплоадна състоянието и (има дежа вю че и това го споменах като инструмент в арсенала ми?). И твърдя също че ако ми отнемеш едно от двете (логиката, т.е. сорса, или jtag-а/лог на входните събития) няма да мога "дори аз"  да го предвидя.
|
| Сря Юли 25, 2018 10:26 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
 Re: Закачки
Стоплих аз че по някое време, някой е изказал еретична мисъл и от там тръгнаха тези софистики и гаври с понятия и човешко достойнство. имхо, Миро ти гледаш от позицията на човек който е написал ОС, кръстил е някакви модули - "драйвери", залепил е някакви библиотеки и е осигурил платформа за някой друг който ще пише приложения или каквото там се е нагърбил да прави. Може и да не съм прав напълно, но такова впечатление имам за това с какво оправдаваш дипломите си. Та в такава позиция наистина няма как да вземеш решение дали да извикаш или не юзърски код. Той за теб е не само черна кутия, той е имагинерно нещо. имхо ако на gicho му липсва таблицата за умножение, то имам подозрение че между платформата и юзърския код при теб липсва цял стек от слоеве. Липсва т.нар. run-time. Да наистина не е работа на този който пише ОС-а да решава дали даден код да се планира за извикване. И не е задача на юзъра да отбира от многозадачност върху еднонишково ЦПУ. Това е работа на този междинен слой - рънтайма. И като всеки участник в играта и рънтайм и той има право да поставя негови правила. Например изисква от юзъра да уточни как иска да се вика неговия код. Дали да се вика при промяна на входните данни или да се вика периодично и с какъв период. Дали да се вика при някакво събитие, смяна на режим и прочие. Освен това от юзъра се иска и да спазва известна дисциплина - когато каже, уточни че това парче код ще се вика при промяна на входен сигнал то парчето код да е написано за такава употреба. Дали ще е автомат с памет или памет с автомат юзъра носи отговорност. От спецификацията, която юзърите дават и от конфигурацията на ОС-а рънтайма генерира разпределение на кода по таскове, генерира условията за извикване на кода, ако трябва генерира FIFO-та и всичко необходимо за да направи спойката между всички имагинерни черни кутии в софтуера написани от всякакви лузъри и ОС-а написан от профита с дипломи като Миро. Нищо при проектирането на кода не се оставя за предвиждане, никой не казва "това не е моя работа", "не знам и не ме интересува", никой не пише ПИД-ове или други алгоритми ако не разбира от това. Чисто и просто там където има проблем се намира решение - създава се липсващия слой. Създава се от хора които точно това им е работата да навързват различни понякога разнородни задачи. Пак да се застраховам това е мое лично мнение (доброволно предоставено  ), но го гледам работещо всеки ден така че имайте едно на ум ако решите да се заяждате.
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Сря Юли 25, 2018 10:49 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Закачки
Тука много сме се овъртяли, за което и аз имам вина - трябваше по-конкретно да отговарям на някой твърдения, че става развален телефон: Това съм го писал някъде на 10-та страница: В следващите страници явно "тълкуваме" думите обходи и непредвидимост . Да предвидя нещо за мен значи да отговоря на въпрос от типа на "я ми кажи, като си толкова настоятелен, какво ще направи поялника като му натисна + бутона? И внимавай, после ще проверя дали си познал като го натисна наистина!". Та аз твъдя че ако имам сорса на поялника, който е автомат с памет, и има видимост до дисплея му, който показва "295", ще кажа че ще покаже "300" - и ще изкарам 20лв от баса. Тук обаче работата е по-лесна, понеже поялника ни показва важна част от стейта си, по-точно всичко което ми е нужно за да "обходя" наум (или със симулатор, или с дебъгер върху реален хардуер) линията от кода в която пише: Това си мисля че достатъчно елементарно, за да не го обсъждаме дали ще се случи - и продължавам за да не остана неразбран: По-сложното е ако питащия ми каже "без да гледаш дисплея, кажи ми какво ще стане ако натисна +"?, на което мога елегантно да му кажа "заданието ще се качи с 5 градуса!" Той ще каже "не, кажи ми колко точно ще стане?", аз 5-10 дни ще се пазаря че ако не ми даде да видя дисплея, нито ми позволи да се закача с Jtag-а към платката, ще имам само един вариант да позная. И той е ако се съгласи да "ресетне" поялника чрез комбинация за зареждане на начално (фабрично) състояние, и да ми напише един низ от натисканията на + и - бутоните в стила на "factory reset, +,+,+,+,+,+,+,-,-,+,-". И че ако ми го даде това, ще може да ме попита какво ще стане ако после натисне +, или -. Точка - друго не ми трябва (сорса нали го споменах?). Заключвам се и след няколко минутни мъки излизам с отговор "155". Стисвам 20-те лв и ходя за Patronus на промоция в лидл. Едит: и да се върна към още по-ранна страница - всичките тия щуротии ги описвам за да покажа че има резон в подхода, който тежко казва: "има смисъл да въртим сметки само ако има промяна в някоя стойност, която се ползва от алгоритъма". Това според Миро ще е невярно, понеже липсва споменаването на стейт и памет. Затова имаше нужда да се изясни (2 страници  ) че стейта с нищо не се различава от входните данни, в смисъл че ако на него се погледне като на още един вход и изход, то изведнъж алгоритъма е приведен във форма, в която всички "стойности, които ползва алгоритъма" стават явни, равнопоставени, и към тях можем да се отнасяме еднотипно. А това че сме намерили всички зависимости ни позволява "да предскажем" дали някаква промяна на стойност в тая система е важна за определена част от кода, и ако не е (т.е. не е в списъка с входни параметри) няма нужда да викаме функциите в тоя клон. Това във FRP е базата и затова го водят че не програмираш, а "описваш зависимостите" - има алгоритъм черна кутия, и казваш от кои неща в системата тая кутия зависи за да си сметне резултата. Което естествено изисква тоя алгоритъм да е извъртян до форма, в която няма скрити (неописани) зависимости. От там се отнесохме с ПИД-а и Димитър - може би примера не беше удачен, но целта му беше да покаже че след като си открил всички зависимости на този алгоритъм, то спокойно можеш да го викаш само когато има промяна в някой от тях. За което беше важно да покажа времето като зависимост, а тя стана една...
|
| Сря Юли 25, 2018 11:43 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Закачки
Ей от такива неща тръгна цялата дандания - ако знам грешката, съдържанието на паметта на ПИД алгоритъма и самия алгоритъм мога много ясно да кажа, точно колко ще е изхода на ПИД-а. Единствения начин да не можеш да го кажеш това е когато разглеждаш алгоритъма като черна кутия, демек не знаеш съдържанието на паметта му и какво точно прави самия алгоритъм. Нонстоп по време на целия спор все някой казва нещатъа с недомлъвки (все едно си спестява факти) и праща спора в 9-та глуха. През цялото време едните викат ако зная всичко мога да предвидя, а другите отговарят ако не знаеш каква е паметта не можеш да предвидиш какво ще излезне от автомата с памет. Демек едните викат портокала е оранжев, а другите вика кръгъл е  . Демек както комбинаторна логика можеш да я "изсимулираш" и да предвидиш изхода само като знаеш входовете и каква е логиката, така и автомата с памет можеш да го "изсимулираш" и да предвидиш изхода ако знаеш входовете, съдържанието на паметта и алгоритъма. И както Миро каза - процесор не можеш да го ревърснеш само по входните и изходните въздействеия ако не знаеш съдържанието на паметта и алгоритъма и много ясно че можеш да кажеш какво ще направи ако ги знаеш тия неща. Ако аз не мога да си предвидя резултата от програмите които пиша тогава не знам за какво точно ги пиша, ако ще трябва всеки път първо да ги изпълня, за да разбера какво ще направят  .
|
| Чет Юли 26, 2018 1:06 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Закачки
Най-накрая някой да ме разбере  Пак да те попитам - след като имаш информацията защо пишеш програма, която да дава същата информация? Защо не дадеш самата информация директно? Друг пример - авторите на GCC вероятно също могат да кажат какъв ще е резултата от пускането му с мой сорс. Защо те не ми пращат резултата ами трябва да ползвам GCC и да го чакам да го компилира всеки път? Защо след като се "знае" какъв ще е резултата от работата на GCC-то аз пак трябва да го ползвам и чакам? Резултата знае ли се или не се знае? Това което вие си мислите че "знаете" НЕ е алтернатива на ползването на автомата. Автомат с памет НЕ МОЖЕ да се шунтира. @gicho, провери си банковата сметка... ако виждаш там един превод с повече от 6 цифри, значи съм те признал 
|
| Чет Юли 26, 2018 9:41 am |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: Закачки
|
| Чет Юли 26, 2018 10:38 am |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Закачки
Защото "даването" на тази информация, т.е. прехвърлянето от офиса до машината, съхраняването и там и използването и може да е неудобно. Въпросът може и би е на обратно - пишем софтуер като удобен начин да генерираме тази информация на място - правилната реакцията на системата е предопределена от заданието и трябва да е достатъчно за да се определи какво ще излезе при определени стимули, т.е. при дефинирана последователност от събития - ако там пише "при две последователни натискания на старт включи лампа auto", то вече сме имали human-readable описание на алгоритъм/логика и останалото е превеждане на тази информация в машинно-четима форма. Т.е. една огромна книга с всички валидни последователности и очакваната реакция при следващия стимул също върши работа, но е неудобна за програмна реализация. Реално точно от подобен вид информация може би е почнал процеса на разработка, и то първо със синтезиране на задание в стандартизира форма. Ако имам алгоритъма (разпечатано копие на заданието) мога да отида, да седна в шкафа на машината, и правя това което се очаква. Само че няма да мога да съм едновременно във втора, трета, пета и т.н. И ако не направя нещо (устройство) което да прави същото: - машината ще си остане само една - като отида да пикая машината няма да работи - като хвана грип машината няма да работи - като се спомина машината няма да работи - като отида в друг шкаф и взема да клатя друга машина първата пак няма да работи - когато вземат да ми пускат детайлите 2 в секунда ще се издъня да следвам логиката, а някой процесор би могъл и някой биткойн да изкара в свободното време дори при 200детайла на секунда - ... Необходимо е да клонирам мене си, или, нескромно казано, малка част от моите познания, така че тоя клонинг да върши точно същото, поставен пред някаква последователност от входни събития (но не произволна - набора от събития и техните комбинации е ограничен заради constrain-и - примерно честота на повторение), и да прави точно това, което аз бих направил, ако ме бяха вързали в шкафа. Затуй си правя труда да извлека това познание, да го моделирам/документирам, после да го проверя (верифицирам формално) и едва тогава да го имплементирам на някакъв език. Ако имаше машина, на която да и мушна разпечатката с заданието в свободен текст, и тя да го разбере нямаше да ми се налага да пиша програма. Но много от стъпките са ръчни, т.е. такива които поне засега изискват интелект - оттам насетне почва инструментариум към който има едно изискване - да не осере нещата които съм му описал. На кой етап подхваща инструментариума се променя с излизането на нови идеи, езици и подходи и по-ясно разбиране на проблемите - например може още от модела (ако той е машинно четим, например математика, UML, симулинк) да започне автоматиката. И ртос-а, и тредове, и памет са инструменти за целта, които, вярваш или не, не е нужно да се описват на ниско ниво в смисъла на тук създай тред, тук сложи мейлбокс, тук пусни таймаут. Ама това пак ще размие дискусията, нека го оставим. Написал съм програма която да ме замести защото има безброй много комбинации от входни събития, които искам да могат да водят до повтаряем ефект всеки път, на всяка машина. Докато машина едно получава старт, то машина 2 може да получава стоп - затова ми трябва същия алгоритъм да мога да му правя инстанции, а когато имам ресурс в едно ардуино да сложа управлението на два пакетираща автомата дето са един до друг, няма да сложа две платки, няма и да направя "PID1()" и да copy-paste-а същото тяло в функция "PID2()". И за да мога да ползвам обща PID() ми трябва да намеря начин: - да ги викам псевдо-паралелно (едновременно), т.е. да изглежда че и двете са живи - да мога да подам А0 входа на първата инстанция, а А3 на втората - да закача PWM7 към мосфета на нагревателя на първата, а PWM3 към този на втората - и, последно, да дам отделни памет/стейт, т.е. integral например от псевдо кода на ПИД-а
|
| Чет Юли 26, 2018 11:39 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Закачки
Още по-добре теоремите на другаря Гьодел за непълнотите, които Гичо така упорито се опитва да запълни 
|
| Чет Юли 26, 2018 11:47 am |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Закачки
Тук пише: Това може би има отношение към създаването на някакъв автоматичен инструментариум или процедура? И това "дали ще спре" програмата като какво да го си го обясня - като определена изходна реакция ли? Ако го позавъртим малко, в статията се говори че определена програма може да спре, а друга да не спре - но никъде не се казва че първата един път ще спре, а втори път няма да спре? Ще се зачета какво идва да покаже това - за момента не мога да свържа с моята теза, така че иска осмисляне и проверка. По-общите "undecidable problems" може да са по-добра изходна точка. Т.е. има проблеми, които са нерешими, но има и такива, които са решими и е въпрос на доказване дали дадения е от едните, или другите.
|
| Чет Юли 26, 2018 11:52 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Закачки
|
| Чет Юли 26, 2018 12:04 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Закачки
Миро, имам чувството че си пишем без да се четем. Резултатите и от моята програма и от компилатора на GCC се знаят какви ще са всеки път, проблема е че не се знае каква ще е входната комбинация и че входните комбинации са страшно много като бройка. Ако тия входни комбинации бяха някакво малко число можеше да мине и без програми а само с една локъп таблица. Така че помисли малко точно какво казваме всички и тогава пак пиши. Всички повтарят че ако се знаят входните въздействия, паметта и алгоритъма може да се предвиди изхода, а ти продължаваш да твърдиш, че или ако не знаеш входните въздейсрвия, или паметта или алхоритъма не можеш да предвидиш резултата. Прочети го това последното още един път и тогава ако искаш пак напиши, че ако знаем входовете, паметта и алгоритъма не можем да предвидим изхода. И ако пак го напишеш това ще те питам ти като компилираш програмата без да я променяш при всяка компилация различен hex файл ли получаваш? И ако не получаваш различен файл можеш ли да минеш без компилиране ако няма промяна щото знаеш, че изходния файл ще е същия. Това според теб предвиждане ли е или не е?
|
| Чет Юли 26, 2018 2:13 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Закачки
Ти си знаеш защо го правиш - но вече има доста услуги от типа компилатор, че и IDE, вървящи в облака. Това в твоята постановка би значело че "ти им пращаш сорса, те ти връщат елф-а" - така ще чакаш по-малко. Това някак си изглежда че работата на целия gcc набор от "алгоритми" е предвидима в голяма степен, и няма значение дали билваш при теб или при тях. За другото - как да ги накараш да ти пращат хекс без да измислиш първо сорса не мога да ти кажа - ако намериш начин ще е интересно за целия форум - да скатаем от работата. Всъщност има подобна опция и на нея и викат outsourcing - пращаш заданието в Индия, те ти връщат хекс (е, може и сорс ако държиш, ама ще те е гнус да го гледаш).
|
| Чет Юли 26, 2018 3:07 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Закачки
и аз имам същото чувство  Зависи какво разбираш под думичката "предвиди". Дали това е алтернатива на изпълнението на дадения алгоритъм или не. Моето твърдение беше че няма как да се познае резултата от произволен алгоритъм (с памет) без неговото изпълнение. Затова няма как да не се изпълнява. Проиграването стъпка по стъпка на един алгоритъм не е "предвиждане" на резултата, а "получаване" на резултата  Не се заяждам за думичките, ще се съглася и с по-точни термини ако дадете такива. Важен е смисълът. И за съжаление разминаването ни (поне с gicho) не е само в термините 
|
| Чет Юли 26, 2018 3:36 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: Закачки
Това са основни положения, отдавна анализирани от титаните. Намери си някакви книжлета по темата, или пък някакви материали от CS курсове - Уикипедия е ужасно средство за запознаване с нещо ново. Мини А-Б-В-тата и тогава завъждай собствени размисли.  Това го казвам съвсем доброжелателно, тъй като тази топла вода е открита и се ползва. Иначе не знам за колко неща спорите, нямам нерви да изчета всичкото. 
|
| Чет Юли 26, 2018 3:41 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Закачки
Миро, никой не е говорил за произволни алгоритми, дето не ги знаеш какво правят - напротив винаги е ставало въпрос за точно конкретен и познат алгоритъм. Иначе по тая логика ти няма как да познаеш резултата и от алгоритъм без памет, ако не го знаеш какво прави, т.е. ще трябва да го пуснеш да работи, за да видиш какво прави. Аз затова казах, че никой не чете, а само пише  .
|
| Чет Юли 26, 2018 3:45 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: Google [Bot], vesko_hard и 5 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|