@arkenidar
Nothing here yet.
Nothing here yet.
No blogs yet.
Yes, usually the Busy Beaver problem is undecidable. I solved the Busy Beaver problem for a variant: Turing machines with finite tape , instead of Turing machines with infinite tape. This conduces to a further termination condition, so there are 3 termination conditions: * Halting State is reached ( of course) * End Of Tape is reached (because of finite tape) * Infinite Looping is detected (see note below) Infinite Looping is detected -> (This is implemented by an idea of mine: tracking the previous states and when a previous state reappears this is a sign that the programs infinitely repeats (see note below about Euclid division algorithm). This is also because there are no inputs in busy beavers programs , only output they produce, so there is no input that can make the program run on a different path . When the same point is reached, considering snapshots of states, it is assured that the program repeats, thus solving the halting problem for Turing machines that have no input and have finite tape ) ) https://github.com/arkenidar/turingvm_halting_busybeavers.java https://github.com/arkenidar/turingvm_halting_busybeavers.js note about Euclid division algorithm) This works very similarly to an Euclid division algorithm, where this possible infinite repetition of sequences of digits can occur when a previously occurred dividend appears. The divisor does not change, only the dividend changes. And when that changing part is "unchanging" (reoccurs) the behavior repeats, and this is shown in repeating digits, when this happen. Conclusion: the infinite repetition can be detected (and the Euclid division algorithm showed me how). This relates to the "halting problem".
but why? what is the rationale of it? BTW producing C/C++ or Java or other could be used as a compiling target, also. but why to wrap this languages into yet another language dress? there have been many projects like this, bound to disappear into the void again
oh, you did point to M.V.C.C. (https://en.wikipedia.org/wiki/Multiversion_concurrency_control) not M.V.C.(the design pattern), something other I misunderstood from the mis-spelling! and now there is an explanation!
I believe that web-technologies can be used in very good ways, since they are very powerful and quite flexible, but this leaves room also for them being used in bad ways. Recently, in the last years, there was a big turmoil! I would say that some "innovations" are breaking the previous ways: I refer to web-sockets(breaks HTTP), single-page applications (breaks previous ways of navigations and linking and in some cases search-engines interfacing is worse), compiling (bigger code?, and what about caching/fetching?, developer work-flow and tooling) ... these (and others) are taking the web back to desktop or more classical paradigms (I would say the web did help in having new ways of looking at software design). I would say that choosing to use something without proper considerations could be worsening.
I would say: are we (including myself) able to really understand this type of softwares (let's call them DataBaseManagementSystems) really in detail? so we can really evaluate them for design choices, knowing how to implement a design choice? I would say that knowing them is really difficult given the complexities they embed (DataBaseManagementSystems are really complex softwares). To be more specific I say something like having the entire source-code of something in mind when using it so you really should have an understanding of its behaviors (of course understanding the source-code is a part of the understanding because this knowledge has to be applied, and there are other elements in the system because the software does not run isolated, but it is part of a system that includes it).