31 ms·
What do you think of it for pedagogical purposes? Even if it were impossible to implement, I wonder if an interface closer to traditional programming might lowe
by repsilat 10y ago
What do you think of it for pedagogical purposes? Even if it were impossible to implement, I wonder if an interface closer to traditional programming might lower some barriers to understanding what a quantum computer can do, and how a quantum algorithm might work. Perhaps "prototype in Python, rewrite the slow bits in C" could be adapted to quantum computing.
- reikonomusha 10y agoI think a problem with thinking "an interface closer to traditional programming" is that it's really difficult to get anywhere close to what traditional programming is in any meaningful sense. It, QCL, looks traditional because it looks like C with qubit registers (i.e., on the surface, "just another datatype"), but quantum programming is anything but C. No printf'ing quantum states, no qmemcpy, no qmemset, no stepping debugger, no hexdumping, etc. These things are more-or-less quantum impossibilities of ever having, and so we need to think about things in a new way. Trying to hang on to C(-like) programming for pedagogical purposes is more or less a lost cause. With that said, I do not claim that there is no utility in something like QCL. I just don't think it's right, right now. A very rough analogy, I suppose, would be "let's make Haskell more accessible by doing away with monads and referential transparency". At that point, you've departed from the paradigm Haskell puts forth, and you actually haven't made Haskell any bit accessible. Your second point about "prototype in Python, rewrite slow bits in C". There isn't, as far as I'm concerned, that sort of problem with quantum programming at the moment. Maybe in a decade or two. It is difficult enough to even get an algorithm working altogether, let alone reasoning about speeding it up. To reason about speedups, you need a framework in which you can reason about performance on some machine model. One such machine model is described in the aforementioned reference.
- djsumdog 10y agoThis guy has some amazing videos on the basics of quantum computing and QCL: https://www.youtube.com/watch?v=GO6TsdwxcwM https://www.youtube.com/watch?v=GO6TsdwxcwM I wish he had the people and support to help make animations and present the formulas in the correct notations. It starts to make sense though. I want to get into quantum computing, especially since IBM has one you can play with on-line (your program queues up like old fashion punch cards): https://quantumexperience.ng.bluemix.net/ https://quantumexperience.ng.bluemix.net/ ..but to really use it, you need to know how these super weird quantum gates work. From what I can tell with QCL, everything a quantum computer can do, we can do with traditional computers. It's just that simulating 100 qbits takes an ungodly amount of memory and processing power. Quantum computers can't replace traditional computers, they're for a very specific problem space that can be defined with these quantum gate concepts.
- Strilanc 10y agoTry the video series Quantum Computing for the Determined [1] My simulator, Quirk [2], is a bit easier to experiment with than IBM's. But it still assumes you know the basics. 1: https://www.youtube.com/playlist?list=PL1826E60FD05B44E4 https://www.youtube.com/playlist?list=PL1826E60FD05B44E4 2: http://algorithmicassertions.com/quirk http://algorithmicassertions.com/quirk
- pjmlp 10y agoQuantum programming done properly would much likely need some kind of functional / declarative programming language. Similar to how the connection machines were programmed in *Lisp.
- flukus 10y ago> no qmemset, no stepping debugger, no hexdumping, etc. These things are more-or-less quantum impossibilities of ever having Unless there are good alternatives to this, a quantum computer will never execute anything more complicated than an algorithm.