My Favorite Languages | |
Language | Proficiency |
BASIC | out of practice |
C | advanced |
C++ | out of practice |
C# | advanced |
Forth | beginner |
Java | out of practice |
JavaScript | advanced |
LabVIEW | beginner |
LaTeX | advanced |
Mathematica | beginner |
MATLAB | out of practice |
MySQL | intemediate |
PARI/GP | advanced |
Perl | intermediate |
PHP | beginner |
Scheme | beginner |
UNIX Shell | intermediate |
VBScript | out of practice |
Visual Basic | out of practice |
My tasks
I occasionally create tasks, usually with some reference implementation in a reasonably-common language like C, Perl, or JavaScript.
GeSHi tester
So far (2011-07-11), comments and keywords work just fine (though the 2.6 ones have not been added and the two comment types are highlighted differently). gp2c types work except :real which conflicts with the function of the same name. GP types do not work. Default keywords work except the two that conflict with functions, simplify
and log.
. Embedded quotes and even string context work just fine. Operators are not highlighted, which means I don't have to care about special ones like \/
.
Default keywords and types are highlighted outside their proper context, though this is probably not a big deal. I'm not sure why the member function .mod
is highlighted; it's probably not a bad idea to add standard member functions but I didn't.
<lang parigp>fibonacci(9) /* Is it working at all? */ ellheegner(ellinit([0, -1, 1, -33, 93])) \\ Do the 2.6.x functions work? myFunc(x:real, y:mp, z:int)=[x,y,z]; \\ gp2c types, including one that conflicts with a function realprecision=mp+7; \\ should not be highlighted whatType(x)=if(type(x)=="t_INT", "integer", "something else") \\ GP types default(realprecision, 29); \\ defaults default(simplify, 1) \\ default that conflicts with a function trap(gdiver, "tried to divide by 0", 1/0) \\ error type "this is a string with embedded \"quotes\" and a "variable" in the middle" \\ string context, embedded " "another string, this one with a \\ in the middle, the rest shouldn't be a comment" 'this is all a giant literal var \\ not a quote, not an error -- though if only the first part is treated as a variable that would be fine (x^2+1)'+1 \\ derivative of x^2+1, plus one -- nothing funny should happen to the +1 100 \ 9 *4 / 3 + 1 - 2 \\ are operators highlighted equally, even integer division? 100\9\/3 \/ 1 \\ what about without spaces, or the unusual \/ operator? n=[1,2][9^9%2+1] \\ other operators (a && b) || (c && d); for(i=1,9,variable_with_underscore); Mod(3,9).mod \\ member function Fibonacci=7 \\ should not be highlighted</lang>