[Swift-devel] Problem with iterate

Ioan Raicu iraicu at cs.uchicago.edu
Fri Feb 19 11:36:00 CST 2010


But doesn't the single assignment criteria prevent loops from happening 
in the dependency graph?

Mihael Hategan wrote:
> On Fri, 2010-02-19 at 11:13 +0000, Ben Clifford wrote:
>   
>>> Right. So termination is undecidable by virtue of it being a turing
>>> complete language. What I'm unsure is whether deadlocks follow as a
>>> consequence of that. They are a different beast.
>>>       
>> Turing complete languages don't deadlock in general.
>>
>> (yes, concurrent programs do, but regard swift as a serial programming 
>> language, not as a concurrent one; and regard concurrent execution as 
>> 'merely' an execution optimisation)
>>     
>
> Swift semantics can be executed by a single thread without the
> involvement of any concurrency as you point out. It would still lead to
> non-termination due to loops in the dependency graph.
>
>   
>> So I don't think deadlocks are a consequence of that.
>>
>>     
>
> I wasn't asking whether deadlocks are a strict consequence of it being
> turing complete. We can clearly have deadlocks with much simpler classes
> of programs (a = f(b), b = f(a)).
>
> What I was wondering is whether turing completeness implies
> undecidability for deadlocks in the swift semantics.
>
>   
>> But I do think that probably finding deadlocks given the language features 
>> of SwiftScript is undecideable (not as a consequence of turing 
>> completeness, but because of our choice of language features); and on a 
>> more practical note, requires knowledge of the output of app blocks.
>>
>>     
>
> Swift is turing complete, so any algorithm that can be written in java
> can be written in swift.
>
> Say the deadlock finding function is D(program) returning true if
> program deadlocks, false otherwise.
>
> P(program) {
>   if (D(program)) {
>     return;
>   }
>   else {
>     a = b + 1;
>     b = a + 1;
>   }
> }
>
> P(P):
> D(P) = false -> P deadlocks
> D(P) = true -> P returns
>
> It's the textbook proof and does not involve apps or arrays.
>
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel
>
>   

-- 
=================================================================
Ioan Raicu, Ph.D.
NSF/CRA Computing Innovation Fellow
=================================================================
Center for Ultra-scale Computing and Information Security (CUCIS)
Department of Electrical Engineering and Computer Science
Northwestern University
2145 Sheridan Rd, Tech M384 
Evanston, IL 60208-3118
=================================================================
Cel:   1-847-722-0876
Tel:   1-847-491-8163
Email: iraicu at eecs.northwestern.edu
Web:   http://www.eecs.northwestern.edu/~iraicu/
       https://wiki.cucis.eecs.northwestern.edu/
=================================================================
=================================================================


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/swift-devel/attachments/20100219/b71b798e/attachment.html>


More information about the Swift-devel mailing list