1. A process for the preparation of a cellular carbon or ceramic monolith comprising a hierarchical porous network comprising interconnected macropores and micropores, said porous network being devoid of mesopores, wherein said process comprises at least the following stages:
1) a stage of preparation of a solid silica template in the form of a cellular monolith composed of a matrix formed of silica or of organically modified silica, said monolith comprising macropores having a mean dimension dA of 1 \u03bcm to 100 \u03bcm, mesopores having a mean dimension dE of 2 to 50 nm and micropores having a mean dimension dI of 0.7 to 1.5 nm, said pores being interconnected;
2) a stage of impregnation, under vacuum, of the solid silica template with a solution of at least one carbon precursor or of at least one ceramic precursor selected from the group consisting of preceramic polymers resulting in oxycarbonitrides, carbonitrides, nitrides and boronitrides of carbon;
3) a stage of polymerization, crosslinking, or both polymerization and crosslinking of said precursor within the solid silica template;
4) a stage of carbonization of the solid silica template including said polymerized, crosslinked, or polymerized and crosslinked precursor,
5) the production of said carbon or ceramic monolith by removal of the solid silica template by treatment with an acid or a base, said treatment being carried out without distinction before or after said carbonization stage;
and in that, during the first stage, the silica template is prepared according to a process consisting of:
in preparing an emulsion by introducing an oily phase into an aqueous solution of surfactant,
in adding an aqueous solution of at least one silicon oxide precursor, at least one organically modified silicon oxide precursor, or at least one silicon oxide precursor and organically modified silicon oxide precursor to the surfactant solution, before or after the preparation of the emulsion,
in leaving the reaction mixture standing until said precursor has condensed, then
in drying the mixture in order to obtain the expected solid silica template, and
when the silica template is prepared from said aqueous solution of at least one (not organically modified) silicon oxide precursor, then said process furthermore comprises an additional stage consisting in thermally treating the solid silica template at a temperature of at least 650\xb0 C.
2. The process as claimed in claim 1, wherein the silicon oxide or organically modified silicon oxide precursor(s) used during the first stage of preparation of the silica template are chosen from silicon tetraalkoxides of following formula (I):
R\u2032n(OR)4-nSi\u2003\u2003(I)
in which:
R represents an alkyl radical having from 1 to 5 carbon atoms or a group of following formula (II):
\u2014(CH2)m\u2014R1\u2003\u2003(II)
in which 0\u2266m\u22665 and R1 is chosen from a thiol group, a pyrrole group, an amino group which optionally carries one or more alkyl, aminoalkyl or optionally substituted aryl substituents, an alkyl group or a phenyl group which optionally carries a substituent R2 of alkyl type,
R\u2032 represents an alkyl radical having from 1 to 5 carbon atoms or an aryl radical which optionally carries one or more functional groups, and
0\u2266n<m; m being the valency of the silicon atom.
3. The process as claimed in claim 2, wherein the precursor(s) of formula (I) are selected from the group consisting of tetramethoxysilane, tetraethoxyorthosilane, (3-mercaptopropyl)trimethoxysilane, (3-aminopropyl)triethoxysilane, N-(3-trimethoxysilylpropyl)pyrrole, 3-(2,4-dinitrophenylamino)propyltriethoxysilane, (3-(N-(2-aminoethyl)amino)propyl)trimethoxysilane, phenyltriethoxysilane and methyltriethoxysilane.
4. The process as claimed in claim 1, wherein the silica template obtained at the end of the first stage is washed using an organic solvent and then dried, before being subjected to the stage of impregnation with the solution of carbon precursor or of ceramic precursor.
5. The process as claimed in claim 1, wherein the carbon precursor(s) are selected from the group consisting of phenolic resins, resorcinols, styrene, divinylbenzene, polysaccharides, potato starch, lignin, lignincellulose mixtures and petroleum pitches.
6. The process as claimed in claim 1, wherein the ceramic precursor(s) are selected from the group consisting of polyaminoborazines and their derivatives and polycarbazides and their derivatives.
7. The process as claimed in claim 1, wherein the solvent of the solution of carbon precursor or of ceramic precursor is an organic solvent selected from the group consisting of lower alcohols, tetrahydrofuran, toluene and their mixtures.
8. The process as claimed in claim 1, wherein the precursor is a carbon precursor selected from the group consisting of phenolic resins and in that the solvent is selected from the group consisting of water and mixtures of water with at least one organic solvent selected from the group consisting of lower alcohols, tetrahydrofuran and toluene, in the presence of a base.
9. The process as claimed in claim 1, wherein the stage of carbonization of the silica template impregnated with polymerized, crosslinked, or polymerized and crosslinked carbon or ceramic precursor is carried out under a reducing atmosphere, at a temperature varying from 500 to 1200\xb0 C.
10. The process as claimed in claim 1, wherein the carbonization stage is carried out at a temperature of less than or equal to 700\xb0 C. and in that the carbon or ceramic monolith obtained on conclusion of the process exhibits an electronically nonconducting amorphous structure.
11. The process as claimed in claim 1, the carbonization stage is carried out at a temperature of greater than 600\xb0 C. and in that the carbon or ceramic monolith obtained on conclusion of the process exhibits a semigraphitized structure and is an electronic semiconductor.
12. A cellular solid material provided in the form of a porous carbon or ceramic monolith, wherein said material comprises a hierarchical porous network composed of interconnected macropores and micropores, in which:
i) the macropores have a mean dimension dA of 1 \u03bcm to 100 \u03bcm and have walls having a thickness of 0.5 to 40 \u03bcm, and the macroporous network is composed of hollow carbon or ceramic sphere placed next to one another, and
ii) the micropores have a mean dimension dI of 0.7 to 1.5 nm and are present in the thickness of the walls of the macropores, rendering the walls microporous,
and said material being devoid of mesoporous network.
13. The material as claimed in claim 12, wherein said material’s specific surface is from 400 to 900 m2g.
14. The material as claimed in claim 12, wherein said material exhibits an amorphous structure and is electrically nonconducting.
15. The material as claimed in claim 12, wherein said material exhibits a semigraphitized structure and is electrically semiconducting.
16. The material as claimed in claim 15, the conductivity of said material varies from 2 to 20 S\xb7cm\u22121.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A computer system comprising:
a dynamic compiler, the dynamic compiler including:
an execution history recorder configured to record the number of times a fragment of code is executed, the execution history recorder having a threshold;
an interpreter coupled to the execution history recorder;
a compiler manager coupled to the execution history recorder;
a compiler coupled to the compiler manager, the compiler arranged to create compiled fragments of code having dominant code blocks and at least one outlier; and
memory coupled to the dynamic compiler, the memory managed by the compiler manager such that dominant code blocks are stored in one portion of the memory and the at least one outlier is stored in another portion of the memory.
2. A system as claimed in claim 1, the outlier having instructions to synchronize states.
3. A system as claimed in claim 2, wherein the outlier is operable to pass control to a block of glue code.
4. A system as claimed in claim 3, wherein the glue code instructs the interpreter to interpret a non-dominant fragment of code.
5. A system as claimed in claim 4, wherein the at least one outlier is patched so as to access a compiled version of the non-dominant fragment of code.
6. A system as claimed in claim 1, the dynamic compiler further including at least two outliers, and wherein dominant fragments of code and the at least two outliers are stored in a code buffer in the memory, the dominant fragments of code filled from one end of the code buffer and the at least two outliers filled from the other end of the code buffer.
7. A system as claimed in claim 1, the dynamic compiler further including at least two outliers, and wherein dominant fragments of code and the at least two outliers are stored in a code buffer in the memory, the dominant code fragments and the at least two outliers filled from the same end of the code buffer.
8. A system as claimed in claim 1, the dynamic compiler further including a threshold tuner coupled to the execution history recorder, the threshold tuner operable to adjust the threshold of the execution history manager.
9. A system as claimed in claim 1, the dynamic compiler further including:
a memory searcher coupled to the interpreter;
a converter device coupled to the interpreter; and
an execution device coupled to the converter device.
10. A system as claimed in claim 1, the dynamic compiler further including a queue coupled to the compiler.
11. A system as claimed in claim 1, the compiler manager having a memory manager that monitors memory available to the compiler.
12. A system as claimed in claim 11, wherein a deleter is coupled to the memory manager.
13. A system as claimed in claim 1, wherein the number of times the fragment of code is executed is recorded when the fragment of code is executed by the interpreter.
14. A system as claimed in claim 1, wherein the dynamic compiler is a multi-threaded system and the compiler runs on a separate thread so the progress of code execution is not blocked.
15. A system as claimed in claim 1, wherein the execution history recorder is further configured to record from where a transfer of control into the fragment of code came and to where control is transferred out of the fragment of code.
16. A system as claimed in claim 1, wherein the execution history recorder is further configured to alert the compiler manager when the fragment of code has been executed the threshold number of times.
17. A system as claimed in claim 16, wherein the compiler manager administers the queue of frequently executed fragments of code for compilation.
18. A system comprising:
an interpreter;
a memory searcher coupled to the interpreter;
a converter device coupled to the interpreter;
an execution device coupled to the converter device;
an execution history recorder configured to record the number of times a fragment of code is compiled, the execution history recorder coupled to the interpreter and having a threshold;
a threshold tuner coupled to the execution history recorder, the threshold tuner operable to adjust the threshold of the execution history manager;
a compiler manager coupled to the execution history recorder;
a compiler coupled to the compiler manager; and
memory coupled to the compiler and managed by the compiler manager such that dominant blocks of code are stored in one portion of the memory and the at least one outlier is stored in another portion of the memory.
19. A system as claimed in claim 18, further comprising a queue coupled to the compiler.
20. A system as claimed in claim 19, wherein the compiler manager further includes a memory manager that monitors memory available to the compiler.
21. A system as claimed in claim 20, further comprising a deleter coupled to the memory manager.
22. A system as claimed in claim 18, wherein in the compiler generates compiled fragments of code with only one entry point.
23. A method of compiling computer code, the method comprising:
establishing an execution threshold;
executing a number of fragments of the computer code;
recording the number of times each of the fragments of code is executed;
queuing one fragment of code for compilation when the number of times the one fragment of code has been executed matches the threshold;
compiling the one fragment of code;
generating outliers related to fragments of code that have not been executed the threshold number of times; and
storing the one compiled fragment of code and the outliers in separate portions of memory.
24 A method as claimed in claim 23, further comprising adjusting the threshold after it is established.
25. A method as claimed in claim 23, further comprising monitoring memory available to the compiler.
26. A method as claimed in claim 25, further comprising deleting code from memory to meet the requirements of the compiler.
27. A method as claimed in claim 23, further comprising running the compiler on a thread that is separate from a thread of an interpreter.
28. A method as claimed in claim 23, further comprising recording a transfer of control into one fragment of code and a transfer out of the one fragment of code.
29. A method as claimed in claim 23, further comprising searching memory for preexisting compiled versions of fragments of code.
30. A method as claimed in claim 23, wherein the computer code includes at least one Method, and at least one of the fragments of code includes less than the entire at least one Method.
31. A method as claimed in claim 23, further comprising performing an exception check.
32. A method as claimed in claim 31, further comprising performing a code optimization.
33. A method as claimed in claim 31, further comprising interpreting exception code when an exception occurs.
34. A method as claimed in claim 31, further comprising establishing a link to a bailout device.
35. A method as claimed in claim 31, further comprising passing control to an interpreter.
36. A method as claimed in claim 31, further comprising updating condition states.
37. A method as claimed in claim 36, further comprising interpreting exception code after updating condition states.