Subj : Re: dangers of operator overloading To : comp.programming From : rem642b Date : Sat Aug 20 2005 01:15 am > From: "Rob Thorpe" > Or, if no-ones going to look in the file, then you can make the file a > lisp program. To form the data structure the program is executed. > That way if the representation of the data on file is changed the only > thing that needs to change is the program that writes this program out. > (This also assumes you don't care about security) I don't like that solution at all, for precisely the reason you cite (security). If someday you decide you need security, if you have just a data file, it's easy to encrypt it and delete the original, and then decrypt it on-the-fly only at safe times, and immediately delete the decrypted version whenever there's a security breach. But if you have an actual program that generates the confidential data, it's not so easy to encrypt the source for storage and then decrypt it and compile it and run it all on the fly and the delete the source and object and data when there's a security breach. If you need a different data format, you simply write a converter from the native-lisp-sepxr format to whatever new data format you need. It's a lot easier to invent an output routine for a new syntax than to invent an input routine for a new syntax, so with the original data always in s-expression format the hard part is already done and all you have to do is the easy part each time you change the runtime format of data. (You might even have more than one runtime format, such as a forward and a backward lookup table, each generated from the same s-expression input.) .