home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.ai.fuzzy      Fuzzy logic... all warm and fuzzy-like      1,275 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 583 of 1,275   
   Dmitry A. Kazakov to Maxim S. Shatskih   
   Re: Fuzzy Logic Operating Systems   
   20 Feb 06 09:58:48   
   
   XPost: alt.os.development   
   From: mailbox@dmitry-kazakov.de   
      
   On Sun, 19 Feb 2006 23:34:02 +0300, Maxim S. Shatskih wrote:   
      
   >>> Why not use functions for threads, rendezvous and mutexes? Why bother the   
   >>> language itself with such?   
   >>   
   >> Firstly, it is too low-level. Secondly, functional decomposition does not   
   >> well capture the semantics of concurrency. Thirdly, OSes always were better   
   >> than that.   
   >   
   > Disadvantages: lack of flexibility, hiding of subtle details, complete "black   
   > box" known to the compiler vendor only, unportable (the underlying mechanics   
   > cannot be easily ported since this is a trade secret of the compiler vendor,   
   > remember the story of RtlUnwind call in Windows?), cannot be extended and/or   
   > updated, major issues in creating a debugger, and so on.   
      
   Functional decomposition does not address portability. Portability is about   
   the semantics of the language constructs. When I write int X I tell very   
   little about X. That's non-portable. When I do type X is range -100..100,   
   it becomes portable.   
      
   As for secrets, I don't care about how a vendor implement the *standard*. I   
   recommend our customers Ada for this reason. There is an ISO standard,   
   there exists certification procedure. When I take a validated compiler, I   
   know very well what it does. In the places where the standard allows some   
   implementation freedom, it also requires the vendor to document the   
   implementation.   
      
   > Functional decompositin matches the semantics of concurrency very well. What   
   is   
   > wrong in EnterCriticalSection/LeaveCriticalSection calls and CRITICAL_SECTION   
   > object?   
      
   Safety. You need a helper object to ensure freeing the resource [in the   
   destructor.] Though this still wouldn't prevent deadlocks. Because just two   
   mutexes can create a deadlock.   
      
   Mutex is too low-level. Problems are: deadlocks and priority inversion. In   
   general, mutexes aren't composable. That means: put together two safe,   
   tested pieces of code, and you won't be able to say anything useful about   
   the combination. With functional-only decomposition it becomes a disaster,   
   because the callee does not know mutexes held along the path. According to   
   the paradigm it shall *not* know it. The contract of the callee is it   
   formal parameter list. If the call stack, the history etc should also   
   determine what and how it does, then it no functional decomposition   
   anymore!   
      
   The problem isn't to be able to write something, after all, almost every   
   language is Turing-complete. The problem is to manage complexity.   
   Functional decomposition alone is too weak.   
      
   > Supporting any complex stuff at language level is usually evil. That's why C   
   > and C++ is so popular. C++ only does exceptions and RTTI at language level,   
   and   
   > is heavily criticized for the latter (#define-based RTTI is better).   
      
   C++ is a bad language, especially because of its types system. The core   
   problem that there is no distinction between types and classes. As the   
   result:   
      
   1. Small value objects cannot have classes (int)   
   2. Multiple dispatch cannot be implemented   
   3. Multiple inheritance requires lots of vtab pointers   
   4. Construction model is unsound (no dispatch in c/dtors)   
      
   >> about safe, distributed, preemptive, portable, scalable, real-time etc   
   >> system, I see no way to handle it without addressing these issues on the   
   >> language level.   
   >   
   > Linux is safe, distributed, portable, scalable, real-time (with extensions)   
   > system,   
      
   Where is a smiley? That's a joke, wasn't it?   
      
   --   
   Regards,   
   Dmitry A. Kazakov   
   http://www.dmitry-kazakov.de   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca