From: Nicolas Neuss on 17 Mar 2010 08:33 Eli Barzilay <eli(a)barzilay.org> writes: >> Anyway, I wouldn't mind having a PLT module "common-lisp" >> available:-) > > There's Swindle, which provides most of CLOS in a little more > scheme-ly way, and there's the Modular ACL2 work which is an attempt > to combine CL's double namespace with PLT's module (and hygienic > macros). But neither of these is really a CL language... Yes, actually these are the things (together with Typed Scheme) which especially caught my attention. My ideal of a programming language would contain a (universally used) CLOS-like OO, it would allow (optional) type declarations (integrated with CLOS, of course), compilation to fast code, hygienic macros, and (if possible) try to prove code to be correct in the ACL way. Since PLT Scheme seems to be headed in exactly this direction, I could imagine that there will be a point when it becomes very easy to add to such a strong language also a Common Lisp compatibility module which would make the conversion of existing CL code straightforward. Nicolas
From: roland.kaufmann on 17 Mar 2010 16:26 >>>>> "Ray" == Raymond Toy <toy.raymond(a)gmail.com> writes: > On 3/16/10 5:59 PM, Hugh Aguilar wrote: >> LC53 is just a toy program; nobody who knows anything about encryption >> would use the linear-congruential system. I did think of one use for >> LC53 though. This would be a text-editor that is designed specifically >> for women to write their diaries, and in which they use LC53 >> encryption to prevent their boyfriends from reading the text. Assuming >> that no women are computer programmers (true as far as I know), they >> will never find out how easy it is to crack the LC53. I may write this > Oh, come on! Of course there are computer programmers who are women. I > know some myself. And just because they're not programmers doesn't mean > they wouldn't be able to crack LC53. There are quite a few women > mathematicians too. For example, Joan Boyar who wrote Inferring Sequences Produced by Pseudo-Random Number Generators, Journal of the ACM vol. 36, January 1989, pp.129-141. http://portal.acm.org/citation.cfm?id=59305 This paper presents efficient algorithms for inferring sequences produced by single variant linear congruential generators. Access is assumed to all elements of the sequence prior to the element being predicted. Using the general method presented in the paper, the author proves all linear congruential generators of a specific form insecure. The author's method of inference uses a recurrence that relies on being able to compute integer functions of previous PRNG output in polynomial time. This is one the original discoveries of algorithms with the ability to infer linear congruential generators. This paper assumes a very strong mathematics background, including: Linear Algebra, Abstract Algebra, and High-Level Statistics. Roland
From: Eli Barzilay on 18 Mar 2010 08:12 Nicolas Neuss <lastname(a)kit.edu> writes: > Yes, actually these are the things (together with Typed Scheme) > which especially caught my attention. My ideal of a programming > language would contain a (universally used) CLOS-like OO, it would > allow (optional) type declarations (integrated with CLOS, of > course), compilation to fast code, hygienic macros, and (if > possible) try to prove code to be correct in the ACL way. Heh, that's a long list of things to work on... FWIW, * Typed scheme will probably talk to the compiler to generate faster code at some point in the future, but it's unknown when that will happen; * The object system that is usually used in PLT (eg, for representing GUI objects) is not swindle, so they're two separate systems (swindle might be able to treat the plt object system as its own objects as it does structs (which is similar to how they're done in CLOS), but that requires someone to do the gluing work); * Typed scheme requires declarations, because unlike the types-as- suggestions that you see in CL it does actually typecheck the code. But it is a type system that is aimed at idiomatic Scheme code, which means that it's quite different from ML/Haskell/etc -- the main difference is that it has subtypes, and also that it has an `Any' type. * As for a prover -- the dracula package (http://www.ccs.neu.edu/home/cce/acl2/) is working with ACL2, but there's no theorem prover in plt (yet...). > Since PLT Scheme seems to be headed in exactly this direction, I > could imagine that there will be a point when it becomes very easy > to add to such a strong language also a Common Lisp compatibility > module which would make the conversion of existing CL code > straightforward. Yes, my guess is that this wouldn't be hard for various levels of compatibility and tradeoffs. It's just that nobody had a sufficiently strong itch so far. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life!
From: Eli Barzilay on 18 Mar 2010 08:16 Nicolas Neuss <lastname(a)kit.edu> writes: > > OK, so we have 33 seconds on your machine for mzscheme versus 22 > seconds for SBCL. IMO, this is a very reasonable result considering > that it was obtained without any type declarations. > > Eli, do you maybe know if this result carries over to low-level code > involving uniform arrays of floating point numbers (e.g. for > something like my usual floating-point performance test which I > append below)? I don't have much experience with FP-intensive code, but in the last few releases there were a number of FP-oriented improvements -- there are fp-specific operations and the compiler is smarter with them (to the point of using unboxed FP values), there are also fp vectors that are similarly optimized, and there are also unsafe fp operations if speed is that important. For more details it's probably a good idea to grep the mailing list or ask there... -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life!
From: Tamas K Papp on 18 Mar 2010 08:54
On Wed, 17 Mar 2010 13:33:35 +0100, Nicolas Neuss wrote: > Eli Barzilay <eli(a)barzilay.org> writes: > >>> Anyway, I wouldn't mind having a PLT module "common-lisp" available:-) >> >> There's Swindle, which provides most of CLOS in a little more scheme-ly >> way, and there's the Modular ACL2 work which is an attempt to combine >> CL's double namespace with PLT's module (and hygienic macros). But >> neither of these is really a CL language... > > Yes, actually these are the things (together with Typed Scheme) which > especially caught my attention. My ideal of a programming language > would contain a (universally used) CLOS-like OO, it would allow > (optional) type declarations (integrated with CLOS, of course), > compilation to fast code, hygienic macros, and (if possible) try to > prove code to be correct in the ACL way. > > Since PLT Scheme seems to be headed in exactly this direction, I could > imagine that there will be a point when it becomes very easy to add to > such a strong language also a Common Lisp compatibility module which > would make the conversion of existing CL code straightforward. I experimented very little with it, but Qi II also looks very promising for type checking and fast compiled code. Tamas |