121
Miscellaneous / Re: Language Construction!
« on: May 17, 2013, 04:06:48 am »
Hey BB84, could you make a pdf version of that document?
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to. 121
Miscellaneous / Re: Language Construction!« on: May 17, 2013, 04:06:48 am »
Hey BB84, could you make a pdf version of that document?
122
Miscellaneous / Re: Language Construction!« on: May 16, 2013, 12:25:40 pm »
I've never constructed a language that wasn't a programming language. (as for programming languages, I did a small tutorial on compiler construction here)
Maybe I'll make a spoken language someday, because I'm annoyed at the limited expressiveness of existing ones. Everyone seems to agree that language should be a one-dimensional string of either sound of text with perhaps the occasional back-reference, but I don't particularly agree with that - I certainly don't think that way. Of course sound that has more than one dimension is sort of tricky But I'll work around that somehow. 123
Miscellaneous / Good books, reading lists« on: May 16, 2013, 12:11:49 pm »
Here's a list of books that are good enough that I remember having read them. I'll probably add more later.
Fantasy
Other Fiction
Nonfiction/technical
124
Computer Projects and Ideas / Re: haroldbot (theorem prover / solver)« on: April 28, 2013, 03:22:45 pm »
Update: added abs, changed >> to signed, added >>> as unsigned shift, solved a big bug in quantified solve mode
This new version is now online. 125
Computer Usage and Setup Help / Re: Planned Computer Configuration« on: April 20, 2013, 05:50:51 am »
Oh, didn't know it had its own subforum. It should probably be moved then.
126
Computer Usage and Setup Help / Re: Planned Computer Configuration« on: April 20, 2013, 05:44:13 am »
Indeed. White is a little cheaper, so there's that
But I prefer black. And at this price point, there difference isn't significant anyway. 127
Computer Usage and Setup Help / Re: Planned Computer Configuration« on: April 19, 2013, 02:14:09 pm »
Black, how about you?
128
Computer Usage and Setup Help / Planned Computer Configuration« on: April 19, 2013, 12:36:32 pm »
So, I need a new computer. Here's what I have in mind now and why.
- Intel 4770K. Approx €350. I know an Ivy or SB-E would get better perf/price, but I really want AVX2. As an asm optimizer, I will actually use it, too. - Mobo: dunno, they don't seem to be here yet. Probably a reasonably high end ASUS, but not the Insane Top Model. €200-250ish? - 16GB DDR3, Corsair Vengeance PC3-15000 CL9 €130 ("but 4770K doesn't support that speed!", I know) - Corsair H100i €100 (obviously there will be some OCing (CPU ends in a K so yea), which is also why the memory is slightly faster than standard) - Corsair SP120's (Quiet Edition), because an H100i really needs pressure optimized fans, and the stock fans make a ridiculous amount of noise (hey Corsair, wtf?). €25 for 2. - Corsair AF120's (Quiet Edition), case fans. €25 for 2. (I actually research and buy fans, I'm crazy like that) - Corsair C70, one of the not that many cases that will fit an H100i, and pretty nice. €100 - OCZ ZT Series OCZ-ZT750W €100 (fully modular, plenty of power, ships with nice cables) - Samsung 840 pro 256GB. €200. Neither best perf/price nor best capacity/price, but good balance. - HD6970, €0 because I already have it. I know it's a noob thing. I'll upgrade it later. Total: €1280?! Damn. What it will cost me: €280, because 1k from my grandparents. Jelly? 129
Computer Projects and Ideas / Re: haroldbot (theorem prover / solver)« on: April 08, 2013, 01:25:36 am »
Actually, for the first couple of hours, it only worked with OmnomIRC
130
Computer Projects and Ideas / Re: haroldbot (theorem prover / solver)« on: April 07, 2013, 12:28:33 pm »
Wait, in the future? Isn't that possible right now?
131
Computer Projects and Ideas / Re: haroldbot (theorem prover / solver)« on: April 07, 2013, 11:16:22 am »
I added showing up to 4 results to "solve" mode, as well as showing the total number of solutions.
132
Other / Re: What do you think of this configuration ?« on: April 06, 2013, 05:25:43 am »
Very good, but personally I'd throw in an SSD (even if just for the OS), they're expensive but really worth it IMO. And I really like the Corsair Hydro series coolers, but the one you selected is good too.
133
Computer Projects and Ideas / Re: Hellninjas Stuff n' Junk« on: April 06, 2013, 03:08:41 am »
DarkBASIC actually. Also, "C:\Users\Sparkling Princ"
134
Computer Projects and Ideas / Re: haroldbot (theorem prover / solver)« on: April 05, 2013, 01:28:51 pm »
haroldbot now also accepts a single = for equality.
135
Computer Projects and Ideas / haroldbot (theorem prover / solver)« on: April 05, 2013, 12:40:19 pm »
haroldbot (development name: TheoremBot) was an IRC bot (now only a website) that proves theorems, solves equations, and can even calculate. All in the 32-bit bitvector domain (if that means nothing to you, take that to mean "it calculates with unsigned ints, not natural numbers or real numbers or anything like that).
Warning: the interpretation of >> has changed between versions, it is and was an unsigned shift in the current and the first version, but a signed shift in some versions in between. Warning: the interpretation of >>> has changed between versions, it is now a rotate. Warning: in version 5d, theorem proving mode has become much more sensitive to divisions by zero, so sensitive that if there's any possibility of division by zero it will freak out. I'll try to do something about that at some point. How to use it There are three basic modes.
note: sometime it will say something like "time-out while counting solutions". That means the BDD approach didn't work out and it had to switch to the SAT solver - don't worry if you don't know what that means, it's the implication of that that's important: it will not find try to find "nice" results, it will find just any old result. Quantified mode does not fall back to the SAT solver (yet?). Signedness Values in haroldbot have no signedness, instead the operations have signedness. All operators and functions are unsigned by default, append s (operators) or _s (functions) to get the signed version, if there is one. Expression syntax Operator precedence and associativity are almost the same as in C, but not quite. Notably the comparisons have a lower precedence than bitwise operations (but still higher than boolean operations). Here is a list of available operators and their gotcha's, in order of precedence (groups of equal precedence not shown)
How it works It builds an array of 32 binary decision diagram's of the input (one for each bit), and does some fairly standard operations on them (quantified solve mode uses universal quantification over all the variables that you didn't mention, which is a bit rare). There's no magic. If you want to learn more about BDD's, you can read the draft of Knuth's Chapter 7.1.4. When that fails (that is, there are more than about a hundred thousand nodes in the BDD), it switches to a SAT solver. It switches when the BDDs get too big to fit in their pre-allocated array, the time that takes depends on the speed of the client. The proofs it finds (if any), are made using the fairly brute-force approach of taking both "ends" of the proof and applying rewrite rules until they meet in the middle. This process is guided somewhat by selecting candidate expressions to rewrite based on their "weight", the weight is a combination of how many steps away it is from the original expression and, crucially, how complicated the expression is. It's an empirical observation that it's usually not necessary to have expressions in a proof that are a lot more complicated than the most complicated "end" of the proof. Of course this does not always hold, so this optimization makes it slower to find some proofs, while making it faster to find typical proofs. A second important component is two forms of hashing. One form that helps to match expressions that are overall structurally equal (all explored expressions are put into hash sets using this type of hash, to make it fast to detect when the two expanding clouds of expressions meet). That hash the usual "combination of hashes of child nodes and this node". The other hash is one that helps to match rewrite rules to expressions, it considers only a node and its immediate children. Rewrite rules are put in bins according to which hashes they would match onto, when rewriting this is used to only attempt to match a rule pattern to an expression if it has a decent chance of actually matching. I'm open to requests, but BDDs are no silver bullet and will not solve everything, and the SAT solver fallback tends to be really slow (through no fault of its own, it's just that it automatically only gets to deal with hard problems - everything easy is solved by the BDDs). For example multiplication, division and remainder, are just fundamentally hard to deal with. It's also not really a good framework for simplification, but you can use theorem proving mode to test if your own simplification is correct. |
|