| bio | website | chrisaycock.com |
|---|---|---|
| location | New York, NY | |
| age | 31 | |
| visits | member for | 2 years, 5 months |
| seen | 18 hours ago | |
| stats | profile views | 360 |
I do high-frequency trading, mostly in C++ and q/kdb+. I am a pro tem moderator of Quant SE. My views are my own and do not reflect the same of my employer.
My favorite answers:
Separating the wheat from the chaff
How much data is needed to validate a trading strategy
Time-series similarity measures
Column-oriented storage for tick data
A new programming language can only succeed if it capitalizes on an emerging frontier
|
May 10 |
comment |
Writing a Compiler Compiler - Insight on Use and Features I assume you've seen ANTLR 4. That does a really nice job of simplifying things. Anyway, about the one thing I would really want is an automatically created (and filled) AST. I.e., I don't want to have to define my own since it will just mirror my grammar anyway. If I could list my productions and then know that I'll get an AST back (with line numbers for error reporting!) then I can get to work a lot faster. |
|
May 10 |
answered | Is there any way to get faster at solving bugs? I've just had a warning from my boss |
|
Apr 1 |
comment |
Are “normal order” and “call-by-name” the same thing? This Wikipedia article states that, in contrast to normal order, "a call-by-name strategy does not evaluate inside the body of an unapplied function". No specific citation is given though. |
|
Mar 28 |
comment |
How does understanding computer architecture help a programmer? @Stargazer712 Now who's advocating computer organization knowledge? ;) Linux uses a linked list of task_struct to store process info. The for_each_task macro at the bottom of sched.h shows how to iterate through this list. |
|
Mar 28 |
comment |
How does understanding computer architecture help a programmer? @Stargazer712 Isn't the PCB part of the kernel? |
|
Mar 27 |
comment |
How does understanding computer architecture help a programmer? @parsifal By overhead, I was referring to allocating on the heap vs merely placing a variable on the stack. |
|
Mar 27 |
revised |
How does understanding computer architecture help a programmer? Since there was enormous confusion from people who haven't studied computer organization... |
|
Mar 27 |
comment |
How does understanding computer architecture help a programmer? @Stargazer712 The segments are code, data (namely heap), and stack. What you're referring to are tiers in the memory hierarchy. |
|
Mar 26 |
answered | How does understanding computer architecture help a programmer? |
|
Mar 26 |
revised |
Why can't a compiler avoid importing a header file twice by its own? Corrected typo |
|
Mar 24 |
comment |
Why many programming languages have only 2 data-structures: arrays and hashes? @DonalFellows Good point. I notice that counter machines require "obscure coding" rather than indirect addressing. As for SKI combinators, how would one represent state changes in that? |
|
Mar 24 |
revised |
Why many programming languages have only 2 data-structures: arrays and hashes? Updated to focus on practicality given the comment from Donal Fellows. |
|
Mar 24 |
revised |
Why many programming languages have only 2 data-structures: arrays and hashes? added 76 characters in body |
|
Mar 24 |
answered | Why many programming languages have only 2 data-structures: arrays and hashes? |
|
Mar 23 |
comment |
Why many programming languages have only 2 data-structures: arrays and hashes? Plenty of languages in the ML family have lists rather than arrays (head/tail semantics instead of random access). Also, q/kdb+ has a table container that mimics an in-memory SQL-like container. And C doesn't have built-in hashes at all. So I think your premise takes a narrow views of what's out there. |
|
Mar 18 |
comment |
What is the maximum value of index of an ArrayList? A computer doesn't have "endless memory"; it has, at most, an amount that can be referenced by the memory-address register. So if you have a 64-bit machine, then you can access 2^64-1 bytes of addressable memory. |
|
Mar 14 |
comment |
A good C Variable Length Array example @MikeBrown The question/answer you link to is asking about cache effects of accessing the stack or heap after the array has been allocated. The OP here (hyde) is asking about performance differences during the allocation. The stack is always faster to allocate on than the heap because it's just a movement of the frame pointer. std::vector can't use VLAs because the frame pointer will have been moved back once the constructor returns. |
|
Mar 14 |
comment |
A good C Variable Length Array example @Lundin Does C++ scale the vector by powers of ten? I just got the impression that Mike Brown was really confused by the question, given the linked list reference. (He also made an earlier assertion that implied C99 VLAs live on the heap.) |
|
Mar 14 |
comment |
A good C Variable Length Array example Why would a std::vector need scales of arrays? Why would it need space for 10K elements when it only needs 101? Also, the question never mentions linked lists, so I'm not sure where you got that from. Finally, VLAs in C99 are stack-allocated; they are a standard form of alloca(). Anything that requires heap storage (it lives around after the function returns) or a realloc() (the array resizes itself) would prohibit VLAs anyway. |
|
Mar 14 |
revised |
How were some language communities (eg, Ruby and Python) able to prevent fragmentation while others (eg, Lisp or ML) were not? typo |