Doxygen
ANTLR
Boost::Spirit
PCRECpp
Monday, August 22, 2011
Tuesday, June 7, 2011
Log for June 7th, 2011
In code.l, the path of parsing the class body is:
<Body>"class" => <ClassName> => <ClassVar> => <Body>
And the function definition or declaration is dealt with in <Body>.
Timestamp: 16:14
--------------------------------------------------------
<Body>"class" => <ClassName> => <ClassVar> => <Body>
And the function definition or declaration is dealt with in <Body>.
Timestamp: 16:14
--------------------------------------------------------
Monday, June 6, 2011
Log for June 6th, 2011
Today, I applied for New Mexico Non-Driver ID, and went to Motor Vehicle Division with Jim. The materials I brought were Passport, SSN card, latest Bank Statement, and Apartment Rental Agreement. The process was very successful and no exception happened.
Then about the book The History of Western Philosophy, I finished reading Plato's theory of ideas. This is the main part of Plato's book Republic, and here he tried to define the concept "philosophy", "knowledge", "reason", and "understand". Philosophy means the love of wisdom. In Plato's thought, wisdom is different from the things we can perceive. In the sense of metaphysic, say, there are many particular cats, and we call them all "cat". However, there should exist one perfect cat, which was created by God, to designate all attributes of a cat. Then what we can see in reality are all imperfect cats. Similarly, the beautiful things are quite vary, but the beauty behind them remains the same. A person who likes different beautiful music, books, flowers, etc. is just the one who love for beautiful things, but doesn't realize the beauty itself. In Plato's theory, all facts and knowledge are eternal, infallible, and immutable. And most of us humans, in a parable, are prisoners in the dark crime. We face the wall, and there is a fire behind us. What we are able to see are just shadows which has been made by the fire. But the philosophers are the group of persons who can break through the prison and are able to see the real things through the sunshine. And the guardians from this group are the persons who are brave to return to the prison, and make the rest people realize their situation and be accompany with them to break the prison and see the facts instead of the illusions.
For Meta-Math project, now I come across two bugs. One is for the following situation:
class SomeClass {
private:
int x;
public:
int getX(void);
};
int SomeClass::getX(void) {
return x;
}
Doxygen cannot parse "int getX(void);" correctly. Actually, the bug is that when it deals with this case, then the current member object is NULL. But if working well, it should be the function's name "getX" or "SomeClass::getX".
The other bug is that Doxygen is not able to add the related MetaReference record for the member function invocations like:
a::c();
a.c();
a->c();
(*a)->c();
(*a).c();
This is what I should fix after the first bug.
Next, I shall test whether Doxygen works well for the nested class definiton case. Like,
Class Class1 {
Class Class2 {
...
};
...
};
Then about the book The History of Western Philosophy, I finished reading Plato's theory of ideas. This is the main part of Plato's book Republic, and here he tried to define the concept "philosophy", "knowledge", "reason", and "understand". Philosophy means the love of wisdom. In Plato's thought, wisdom is different from the things we can perceive. In the sense of metaphysic, say, there are many particular cats, and we call them all "cat". However, there should exist one perfect cat, which was created by God, to designate all attributes of a cat. Then what we can see in reality are all imperfect cats. Similarly, the beautiful things are quite vary, but the beauty behind them remains the same. A person who likes different beautiful music, books, flowers, etc. is just the one who love for beautiful things, but doesn't realize the beauty itself. In Plato's theory, all facts and knowledge are eternal, infallible, and immutable. And most of us humans, in a parable, are prisoners in the dark crime. We face the wall, and there is a fire behind us. What we are able to see are just shadows which has been made by the fire. But the philosophers are the group of persons who can break through the prison and are able to see the real things through the sunshine. And the guardians from this group are the persons who are brave to return to the prison, and make the rest people realize their situation and be accompany with them to break the prison and see the facts instead of the illusions.
For Meta-Math project, now I come across two bugs. One is for the following situation:
class SomeClass {
private:
int x;
public:
int getX(void);
};
int SomeClass::getX(void) {
return x;
}
Doxygen cannot parse "int getX(void);" correctly. Actually, the bug is that when it deals with this case, then the current member object is NULL. But if working well, it should be the function's name "getX" or "SomeClass::getX".
The other bug is that Doxygen is not able to add the related MetaReference record for the member function invocations like:
a::c();
a.c();
a->c();
(*a)->c();
(*a).c();
This is what I should fix after the first bug.
Next, I shall test whether Doxygen works well for the nested class definiton case. Like,
Class Class1 {
Class Class2 {
...
};
...
};
Thursday, April 14, 2011
Mission for April 14th
1. 詩經·檜風·匪風
2. Implemented Set, P_queue, Stack ADTs in C++
Meta-Math For Today:
1. A way to defining customized command:
In the ``ALIASES" section of the configure file, create the command by ``name=value" format.
E.g.: If we want to create a command "@Unit" such that "@Unit{Meter}" can refer to "<unit>Meter</unit>" in the resulting XML file, we can define our customized command as follows:
ALIASES += Unit{1}=<unit>\1</unit>
2. The "@param" and "@retval" commands in Doxygen can specify the name of the target variables.
2. Implemented Set, P_queue, Stack ADTs in C++
Meta-Math For Today:
1. A way to defining customized command:
In the ``ALIASES" section of the configure file, create the command by ``name=value" format.
E.g.: If we want to create a command "@Unit" such that "@Unit{Meter}" can refer to "<unit>Meter</unit>" in the resulting XML file, we can define our customized command as follows:
ALIASES += Unit{1}=<unit>\1</unit>
2. The "@param" and "@retval" commands in Doxygen can specify the name of the target variables.
Wednesday, April 13, 2011
Summary for April 13th
Achievement:
1. Implemented the moving rules for 8 puzzle problem in C++.
2. Solve one problem in HW3 CS 500.
3. Learn 詩經·檜風之素冠,隰有萇楚.
4. Practice Taiji and Kendo.
Improvement:
I should have finished C++ implementation for 8 puzzle and sliding tile problems. Besides, I should have spent hours on Meta-Math project. For most of this semester, I didn't pay enough attention on it, so there's no concrete progress on this project, which makes me upset and ashamed. Though Prof. Kniss said nothing about it, I still have to work more diligently on it.
It's near the final of the semester, and there are many works should be finished by then. I should work harder so as to finish them perfectly.
1. Implemented the moving rules for 8 puzzle problem in C++.
2. Solve one problem in HW3 CS 500.
3. Learn 詩經·檜風之素冠,隰有萇楚.
4. Practice Taiji and Kendo.
Improvement:
I should have finished C++ implementation for 8 puzzle and sliding tile problems. Besides, I should have spent hours on Meta-Math project. For most of this semester, I didn't pay enough attention on it, so there's no concrete progress on this project, which makes me upset and ashamed. Though Prof. Kniss said nothing about it, I still have to work more diligently on it.
It's near the final of the semester, and there are many works should be finished by then. I should work harder so as to finish them perfectly.
顽张ってね!
Sunday, March 6, 2011
Some thoughts about NP Problems
Due to the book "Nature of Computation", consider a problem A, if there exists a witness w such that (x, w) is a yes-instance of B, where B is a decision problem in P regarding pairs (x, w), and x is a yes-instance of A, and where |w| = poly(|x|), then this problem A can be classified as a member of the set NP.
So consider the Minimum Spanning Tree (aka. MST) problem, given a spanning tree T, and we are requested to check whether it is the solution for the graph G. Though T can be regarded as the witness w and |w| = poly(|V| + |E|). However, because we don't know the sum of weights of the MST of G in advance, then we have two methods to check this instance.
The first one is to use either Prim's or Kruskal's Algorithm to generate a MST of G and compare its sum of weights with that of T. If they are equal, then this instance is a yes-instance.
The second method may seem a little bit more complicated. We can take advantage of Lemma 3.1. Namely, during each iteration we choose one edge of T and add it in the set T' which is initially empty. Then we check the edges connecting T'.V and (G - T').V. If this edge is the lightest one among those across these two subsets, then we continue this iteration. If not, we just terminate the algorithm and say that T is not a yes-instance. If all the edges in T are checked and there's no termination, we can end the algorithm and say that T is a yes-instance of this problem.
Comparing the above two methods, I'll buy the first one.
So consider the Minimum Spanning Tree (aka. MST) problem, given a spanning tree T, and we are requested to check whether it is the solution for the graph G. Though T can be regarded as the witness w and |w| = poly(|V| + |E|). However, because we don't know the sum of weights of the MST of G in advance, then we have two methods to check this instance.
The first one is to use either Prim's or Kruskal's Algorithm to generate a MST of G and compare its sum of weights with that of T. If they are equal, then this instance is a yes-instance.
The second method may seem a little bit more complicated. We can take advantage of Lemma 3.1. Namely, during each iteration we choose one edge of T and add it in the set T' which is initially empty. Then we check the edges connecting T'.V and (G - T').V. If this edge is the lightest one among those across these two subsets, then we continue this iteration. If not, we just terminate the algorithm and say that T is not a yes-instance. If all the edges in T are checked and there's no termination, we can end the algorithm and say that T is a yes-instance of this problem.
Comparing the above two methods, I'll buy the first one.
Thursday, January 6, 2011
Thoughts about Machine Learning
In the book "All of Statistics", the author believed that Machine Learning should be called Statistical Inference in order to reveal its core thoughts. However, I've found that Machine Learning should be much more than that. It contains many thoughts in Neural Science and Clustering, besides Bayesian Inference and Hypothesis Test.
Nowadays, Machine Learning is becoming more and more popular, -- not only among scientists of Computer Science and Statistics, but almost everyone in the fields of Natural and Social Science. I don't know whether scholars in Art, Humanities or History are interested in Machine Learning. But I hope not.
I don't whether it is a good news that it becomes so popular. More and more smart persons are working on it, but I see no theoretical breakthrough hitherto. And I don't want to join this revelry.
I know that statistics can be used as a concrete tool to resolve many real-world problems perfectly. I will learn it well. But I don't believe that it can be the Messiah for science, especially for Artificial Intelligence.
My purpose of studying science is to know deeply about western philosophy. I like the feeling that I can help promote the world, but I don't want to be an engineer. I want to be a teacher -- not a teacher in high school or primary school, but a teacher of both Oriental and Western cultures and philosophies.
Thus, I cannot be crazy about Machine Learning. I will step towards the kernel of Artificial Intelligence without any stop. For ML, I regard it as a concrete tool, but not a comprehensive theory which can help me reach the philosophy hiding behind it.
Nowadays, Machine Learning is becoming more and more popular, -- not only among scientists of Computer Science and Statistics, but almost everyone in the fields of Natural and Social Science. I don't know whether scholars in Art, Humanities or History are interested in Machine Learning. But I hope not.
I don't whether it is a good news that it becomes so popular. More and more smart persons are working on it, but I see no theoretical breakthrough hitherto. And I don't want to join this revelry.
I know that statistics can be used as a concrete tool to resolve many real-world problems perfectly. I will learn it well. But I don't believe that it can be the Messiah for science, especially for Artificial Intelligence.
My purpose of studying science is to know deeply about western philosophy. I like the feeling that I can help promote the world, but I don't want to be an engineer. I want to be a teacher -- not a teacher in high school or primary school, but a teacher of both Oriental and Western cultures and philosophies.
Thus, I cannot be crazy about Machine Learning. I will step towards the kernel of Artificial Intelligence without any stop. For ML, I regard it as a concrete tool, but not a comprehensive theory which can help me reach the philosophy hiding behind it.
Subscribe to:
Posts (Atom)