SBCL standard library documentation? [closed] - documentation

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I want to learn and use SBCL because of its ease of learning and speed. (I've been playing with Lisp 3 years ago, and now am refreshing it.) But how can I learn what's included in the standard library, so that I don't re-implement things?
After Python this is like a nightmare: the SBCL website has a manual that covers the software only, not a word on the standard library. (For comparison, Gnu Common Lisp's website has only sources and binaries.)

Firstly: that problem isn't really SBCL specific. The CL library is standardised and thus you can use the documentation of any lisp.
As mentioned, the CL HyperSpec is very useful. It is however a reference and thus not very suitable for learning in my opinion.
For learning, there are various books out there. I personally like these a lot:
ANSI Common Lisp by Paul Graham
Practical Common Lisp by Peter Seibel
Successful Lisp by David Lamkins
You should also look at existing code. I particularly enjoyed reading any of the libs by Edi Weitz but spread out and read from different sources to see how other people use Lisp and its huge library to solve problems.
If you can spend that much time you can even log onto IRC (the #lisp channel) and ask questions there. Or post code you have written to comp.lang.lisp and ask for a critique to learn via direct feedback.

Consult the Common Lisp HyperSpec for documentation about what is included in Common Lisp

Also, if you are learning lisp, consider using CLISP instead of SBCL. CLISP has (IMHO) a much more intuitive debugger. For any non-production stuff the difference between most Common Lisp implementations are negligible.

If you are developing on Windows, CLHS (Common Lisp HyperSpec) and CLtL2 (Common Lisp the Language, 2nd Edition) are available as CHM help files, which makes looking for CL standard library functions much easier. I find that it's faster than using the (online or offline) HTML version.
The CHM files are probably available from more than one source. One convenient download is:
http://www.daansystems.com/lispide/
(They're bundled with LispIDE package.)

Related

C++ disassembler? [duplicate]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I have a program in which I've lost the C++ source code. Are there any good C++ decompilers out there?
I've already ran across Boomerang.
You can use IDA Pro by Hex-Rays. You will usually not get good C++ out of a binary unless you compiled in debugging information. Prepare to spend a lot of manual labor reversing the code.
If you didn't strip the binaries there is some hope as IDA Pro can produce C-alike code for you to work with. Usually it is very rough though, at least when I used it a couple of years ago.
information is discarded in the compiling process. Even if a decompiler could produce the logical equivalent code with classes and everything (it probably can't), the self-documenting part is gone in optimized release code. No variable names, no routine names, no class names - just addresses.
Yes, but none of them will manage to produce readable enough code to worth the effort. You will spend more time trying to read the decompiled source with assembler blocks inside, than rewriting your old app from scratch.
I haven't seen any decompilers that generate C++ code. I've seen a few experimental ones that make a reasonable attempt at generating C code, but they tended to be dependent on matching the code-generation patterns of a particular compiler (that may have changed, it's been awhile since I last looked into this). Of course any symbolic information will be gone. Google for "decompiler".
Depending on how large and how well-written the original code was, it might be worth starting again in your favourite language (which might still be C++) and learning from any mistakes made in the last version. Didn't someone once say about writing one to throw away?
n.b. Clearly if this is a huge product, then it may not be worth the time.

Embedded device drivers development notes [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I want to develop some HAL (Hardware Abstraction Layers) to use in PIC32 and some ARM.
Basically I want to make some code that's usually available on a OS, like generic pin access, communication libraries, device I/O, etc.
Could you advise me with good books/websites?
I'll start with one that I've found a few weeks ago: http://www.kalinskyassociates.com/OnLineLearning.html
Thanks
Have you tried looking at some implementations?
eCos has a HAL, which has some documentation to go along with it.
eLua also has a HAL that has grown around it to support the platforms it runs on (ARM, AVR32, etc..), check the architecture information and the "Platform Interface" and "Generic Modules" menus. If you strip out the Lua, eLua is essentially a HAL.
There are likely other examples as well, but I'd recommend looking at living examples of cross-platform and non-cross-platform hardware APIs. Also, if/when you go and start putting together interfaces, make sure to examine individual platform peripheral implementations before nailing down the API. You will find that certain interaction models are commonly supported across many platforms, and others are very platform specific. If your API assumes functionality will always be available, it will be difficult to port to platforms that either have lacking or non-existent support for the functionality you want. Sometimes you may be able to work around this in software with simple solutions, other times you may find it is either impossible or horribly complicated to make behavior consistent across platforms.
You can try also looking at the OSEK interface documents. The standard does a good job of abstracting accesses to most commonly used peripherals. However, bear in mind that this is only a spec and you'd have to work out all implementation details.

Any library for basic science chemistry/physics programming? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am wondering if there is an open source scientific library for chemistry and/or physics
for C++ (or maybe C)?
I am NOT looking for simulation models, visualization, 3-d modeling.
I am just looking for a basic toolbox that would have, for example: various constants such as Ideal Gas Constant, Avogadro constant, periodic table of the elements values; molecular weight calculation; maybe basic functions implementing equations for stoichiometry, gas laws, thermal dynamics, kinetics.
Chemistry/Physics 101 kind of stuff.
I have found on SourceForge:
Christoph Steinbeck's The Chemical Development Kit (Java) on SourceForge.
NIST-const
I would take a look at the GNU Scientific Library:
http://www.gnu.org/software/gsl/
It should have most of the physical constants you're looking for. As far as the chemistry related stuff, I don't know of any basic packages that do all of those calculations right out of the box.
Update:
I forgot about another project that would have all of the periodic table stuff (and probably more):
http://openbabel.org
specifically check out:
http://openbabel.org/api/2.2.0/classOpenBabel_1_1OBElementTable.shtml#_details
Since you excluded simulations, PyQuante probably isn't what you're looking for, but you might find kinpy and thermopy interesting.
I really like this book for it:
http://www.amazon.com/Physics-Game-Programmers-Grant-Palmer/dp/159059472X
I has the physics formulas in there and the source code is available online:
http://apress.com/book/view/159059472X
I haven't seen much in the way of chemistry. Physics is more popular because it has direct affect on gaming, of course. :-)
Update: a few on chemistry:
http://www.iupac.org/inchi/
http://code.google.com/p/simsoup/
http://gchemutils.nongnu.org/
http://www.simsoup.info/SimSoup/Design/Chemistry_Subsystem.html
Kalzium, part of the KDE tools. Periodic table plus (based on the screenshots) an equation solver and more.
In High Energy Physics, two common c++ libraries/frameworks are CLHEP and ROOT. Both of these contain units and physical constants - see e.g. CLHEP Units. CLHEP also contains a lot of libraries for linear algebra, while ROOT has a lot of tools for data analysis.
Probably not entirely what you are looking for, but may be useful to someone

Need help designing an interpreter [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
i'm thinking on doing an undergrad project on building an interpreter for a simple/rudimentary custom language (perl / C like). I would be be glad if someone could point me in the right direction to start. Most of the books/resources i find are on theoretical implementation of compilers. Are there any resources aimed at interpreters ? i'm thinking of implementing it in C++, but have very little knowledge on the subject of interpreter design, so any pointers to books/references will be appreciated
The parsing of the source code is not very much different between a compiler and an interpreter. And that is what most textbooks on compilers are about.
There are some nice tools now to implement custom languages.
You might want to checkout Xtext in the Eclipse Modelling Package (http://www.eclipse.org) or MPS (http://www.jetbrains.com/mps/), the language workbench of IntelliJ which is freely available.
Both allow you to create languages and provide the tools to generate code from the source and the tooling to help creating the code.
They also create abstract syntax trees which may be directly manipulated, i.e. executed. Then you have an interpreter.
The classical approach would be to use bison/yacc for as a lexer, respectively parser, and many newer tools are currently available like antlr. The output of the parser is then again the abstract syntax tree ready to do interprete or generate code from.
An Incremental Approach to Compiler Construction - it's about creating compilers, but it might be a good starting point to find references from.
I wrote an interpreter for reading and converting logic expressions at Uni. Wrote it in C, Lexx and Yacc which old school Unix and C programmers seem to swear by. Pretty powerful once you get the hang of them, but reasonably steep learning curve I would say.
http://www.lugbe.ch/action/reports/lex_yacc.pdf

Specification Documentation that you can really reference [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
At the moment I am using Visual Source Safe (yeah yeah!) to store my Technical Specification documentation.
The actual docs are written in MS word.
If find that having the spec written in word format to be a big burden, for specs to be truly used there shouldn't be any barrier to usage and more importantly access.
If I can't quickly scan a document, hyperlink to other dependant documents or sections, what use is all this anyway?
So with that as a background:
what software exists to create truly accessable documentation? i.e. hyperlinks to other pages/sections etc? Or even queryable so I can view all documents that are dependant on module 4.5.3
Is it basically just a Wiki? Anything else?
Wikis are great for creating and maintaining specs. However, it is difficult to generate a big ol' paper document that makes a satisfying "thud" when you drop it on peoples' desks.
I've gotten by with Word. Just learn to take advantage of all the automation it has for cross-referencing, indexes, tables, pagination, etc.
I think of specs as having two audiences: decision-makers and developers. The Word documents are for the decision makers. The developers will come up with something useful later when it is time to implement the specs.
I believe Word supports the idea of sub-documents (links to other documents), however I'm not sure how well it works without VSS, much less with VSS. But it's something to look into.
A wiki is, however, pretty much what you are looking for.
Java has API docs generated by javadoc, Python has API docs generated by tools like epydoc.
What language are you working in? Have you looked for tools like javadoc or epydoc for your language?
We just started using Confluence for technical docs and notes: http://www.atlassian.com/software/confluence/
It's a full-featured browser-based wiki that just works out-of-the-box, though you can tweak it to your heart's content. It features everything you'd expect from a professional wiki, including security, rich text, hyperlinks, and attachemts; and it's intuitive enough that even our non-technical people (with 3-letter titles starting with 'C') use it.
If you visit Atlassian's web site (see link above), you can play with their online demo ... and they eat their own dogfood to provide community support.