Why do we say languages such as C are top-down while OOP languages like Java or C++ are bottom-up? Does this classification have any importance in software development?
The "top down" approach takes a high level definition of the problem and subdivides it into subproblems, which you then do recursively until you're down to pieces that are obvious and easy to code. This is often associated with the "functional decomposition" style of programming, but needn't be.
In "bottom up" programming, you identify lower-level tools that you can compose to become a bigger program.
In reality, almost all programming is done with a combination of approaches. in object oriented programming, you commonly subdivide the problem by identifying domain objects (which is a top down step), and refining those, then recombining those into the final program — a bottom up step.
I've never heard that classification applied to specific languages, rather it's a programming paradigm - do you first fill out the details (i.e. build full implementation methods) and then put them together (e.g. call them from them main() method), or start with the logical flow and then flesh out the implementation?
You can really do either with both types of lanugages... But I would say it's typically the opposite, in current OOP languages you'll first define the interfaces, forming the logical structure, and only afterwards worry about the implementation, whereas straight procedural languages like C, you need to actually implement some methods before you call them.
Most of the procedural or low level languages follow Top-down approach like C language.Similarly high level languages like java ,c++ etc follows Bottom-Up Approach.
In Top-down approach,all the system or big functions are broken down into small subsystem whereas in Bottom-up approach,Small sub-system are combined together to develop a big and final system.
e.g.Recursive is top down approach while Iterative is Bottom up approach.
It's more about paradigm (object oriented, imperative, functionnal etc.) than syntax.
From dept-info.labri.fr
Bottom-up programming is the opposite of top-down programming. It refers to a style of programming where an application is constructed starting with existing primitives of the programming language, and constructing gradually more and more complicated features, until the all of the application has been written.
Later in the same article :
In a language such as C or Java, bottom-up programming takes the form of constructing abstract data types from primitives of the language or from existing abstract data types.