Подтвердить что ты не робот

Программирование сверху вниз и снизу вверх

Почему мы говорим, что язык, такой как C, является сверху вниз, в то время как языки ООП, такие как Java или С++, восходящие?. Имеет ли эта классификация какое-либо значение в разработке программного обеспечения?

4b9b3361

Ответ 1

Подход "сверху вниз" требует определения уровня сложности на высоком уровне и подразделяет его на подзадачи, которые затем выполняются рекурсивно, пока вы не обрушитесь на части, которые очевидны и легко кодируются. Это часто связано с стилем программирования "функционального разложения", но не обязательно.

В "восходящем" программировании вы определяете инструменты нижнего уровня, которые вы можете составить, чтобы стать более крупной программой.

В действительности почти все программирование осуществляется с помощью сочетания подходов. в объектно-ориентированном программировании вы обычно разделяете проблему, идентифицируя объекты домена (который является верхним нижним шагом) и уточняете их, а затем объединяете их в конечную программу - шаг снизу вверх.

Ответ 2

В режиме "Вверх-вниз" вы начинаете свою основную функцию, а затем вспоминаете основные шаги, которые вам нужно предпринять, затем вы разбиваете каждый из этих шагов на свои подчасти и т.д.

В программировании Bottom-Up вы думаете об основных функциях и деталях, которые вам понадобятся, и их создании. Вы разрабатываете актеров и их методы, а затем вы связываете их вместе, чтобы создать целостное целое.

OOP естественным образом стремится к Bottom-Up, когда вы разрабатываете свои объекты, в то время как процедурное программирование имеет тенденцию к потоку вниз, когда вы начинаете с одной функции и медленно добавляете к ней.

Ответ 3

Я никогда не слышал, чтобы термины "сверху вниз" и "снизу вверх" использовались таким образом.

Термины обычно используются для описания того, как один из них подходит к разработке и внедрению программной системы и поэтому применимы к любой парадигме языка или программирования.

В "Вкл. LISP" Пол Грэм использует термин "снизу вверх" несколько иначе, чтобы означать постоянное извлечение общей функциональности в разделяемые функции, чтобы вы создали новый диалоги более высокого уровня LISP, который позволяет вы программируете с точки зрения вашего домена приложения. Это не общее употребление термина. В наши дни мы будем называть это "рефакторинг" и "встроенные языки, специфичные для домена" (и старые программисты LISP будут усмехаться, что LISP смог сделать это с 1950-х годов).

Ответ 4

Я никогда не слышал, чтобы эта классификация применялась к конкретным языкам, а скорее к парадигме программирования - сначала вы заполняете детали (т.е. стройте полные методы реализации), а затем объединяете их (например, вызывайте их из них методом main()), или начать с логического потока, а затем выполнить реализацию?

Вы можете действительно делать либо с обоими типами lanugages... Но я бы сказал, что это обычно наоборот, на текущих языках OOP вы сначала определяете интерфейсы, формируете логическую структуру и только потом беспокоитесь о реализации, в то время как прямые процедурные языки, такие как C, вам нужно реализовать некоторые методы до их вызова.

Ответ 6

Это больше о парадигме (объектно-ориентированный, императивный, функциональный и т.д.), чем синтаксис.

Из dept-info.labri.fr

Нижнее программирование - это противоположность программирования сверху вниз. Это относится к стилю программирования, в котором построено приложение начиная с существующих примитивов языка программирования и постепенно создавая все более сложные функции, пока все приложение написано.

Позже в той же статье:

В языке, таком как C или Java, восходящее программирование принимает форму построения абстрактных типов данных из примитивов языка или из существующих абстрактных типов данных.

Ответ 7

В обращении сверху вниз система сначала формулируется с указанием, но не детализирует какую-либо подсистему в начале, а затем каждая система и ее подсистема определяются очень подробно, пока не укажу ее на базу.

например. - В программе на C необходимо объявить функции в верхней части программы, а затем через основную запись для каждой подсистемы/подпрограммы подробно описано.

При восходящем подходе сначала выполняется проектирование, начиная с базового уровня и заканчивая абстрактным уровнем.

Например, в С++/java начинается проектирование из класса с базового уровня функций программирования, а затем переходит к основной части программы.

Ответ 8

Я действительно полагаю, что разница между подходами сверху вниз и снизу вверх к программированию заключается в том, что подход сверху вниз берет проблему и вступает в управляемые шаги, а подход "снизу вверх" на самом деле детализирует эти шаги.

Ответ 9

C - структурированный язык, а последовательность программ - сверху вниз. начиная с основного метода.

тогда как ООП зависит от количества классов и объектов. поток программы не находится в верхнем приближении в ООП