K
kj
I consider myself quite proficient in C and a few other programming
languages, but I have never succeeded in understanding a largish
program (such as zsh or ncurses) at the source level. Basically,
I quickly become disoriented, losing sight of the forest for the
trees.
What's your approach for understanding a large program at the source
level? By "understanding a program" I mean more than just figuring
out where to zero in to make a small change (e.g. change the value
of a global variable), but rather to digest as much of the source
as necessary to know the program's structure in detail, know where
in the source to go for any customization you'd want to make, know
what you'd need to do to port the program to a different OS from
the one it was written for, know what you'd need to do to abstract
some of the program's functionality into a smaller subprogram that
you could embed in a program of your own, etc. Bottom line: the
goal is to know the program's source inside out.
I realize that this is a task that could take days, if not weeks.
I'm willing to put in the effort, but I'm really at a loss as to
how to proceed. (My current interest is reading the source for
zsh, but some day I'd like to read the source codes for Perl, Emacs,
Firefox, Apache, you name it.)
Thanks!
kj
languages, but I have never succeeded in understanding a largish
program (such as zsh or ncurses) at the source level. Basically,
I quickly become disoriented, losing sight of the forest for the
trees.
What's your approach for understanding a large program at the source
level? By "understanding a program" I mean more than just figuring
out where to zero in to make a small change (e.g. change the value
of a global variable), but rather to digest as much of the source
as necessary to know the program's structure in detail, know where
in the source to go for any customization you'd want to make, know
what you'd need to do to port the program to a different OS from
the one it was written for, know what you'd need to do to abstract
some of the program's functionality into a smaller subprogram that
you could embed in a program of your own, etc. Bottom line: the
goal is to know the program's source inside out.
I realize that this is a task that could take days, if not weeks.
I'm willing to put in the effort, but I'm really at a loss as to
how to proceed. (My current interest is reading the source for
zsh, but some day I'd like to read the source codes for Perl, Emacs,
Firefox, Apache, you name it.)
Thanks!
kj