Декларативное программирование .
В 1979 "компьютерные программы" были обязательны. Программист, как ожидали, даст компилятору команду и на [1 111] что делать и на как , чтобы сделать это. (N1)
Сегодня, ASP.NET WebForms и WPF программисты регулярно пишут код, не зная или заботясь , как он будет реализован. Википедия имеет другой, менее основные примеры. Кроме того, весь из SGML - полученные языки "разметки" декларативны, и я сомневаюсь, что многие программисты 1979 предсказали бы свою важность или повсеместность через 30 лет.
, Хотя понятие декларативного программирования существовало до 1980 (см. данная статья с 1975), это , изобретение произошло с введением Caml в 1985 (спорный) или Haskell в 1990 (менее спорный). (N2) С тех пор, декларативное программирование увеличилось значительно в популярности. И, когда в широком масштабе многоядерные процессоры наконец прибывают, мы будем весь быть декларативными программистами.
-
Примечания:
(N1) я не могу ручаться за это непосредственно, так как я был зародышем в 1979.
(N2) Из других ответов, кажется, что люди путают концепцию с изобретением. Da Vinci забеременел вертолета, но он не изобрел его. Вопрос находится конкретно на [1 118] изобретения в вычислениях.
(N3) не упоминайте Пролог (рэл. 1975) в комментариях, если Вы на самом деле не создали приложение в нем.
Зависимости являются только программами
, важно, чтобы Вы отметили, что зависимости являются программами. Нет никакого различия между программами и зависимостями.
Иногда, что можно рассмотреть как зависимость, возможно, быть полным программным обеспечением, которое может работать свой собственный.
Так короче говоря, это не возможно. Но можно получить полный список при помощи команды
dpkg -l
, Если Вы захотите список только тех команд, кто соответствует шаблону
dpkg -l <pattern>
, то сделает задание.
Можно перечислить зависимости пакетов с apt-cache depends <pkg>
Для списка некоторых пакетов, которые не зависят, другие пакеты используют некоторую командную строку fu:
dpkg -l|grep ^ii|while read a b c; \
do apt-cache depends $b|grep -q Depends: || echo $b; done
Если Вы установили использование sudo apt-get install
, я могу показать, как получить список программного обеспечения (и не зависимости).
$ cat /var/log/apt/history.log > ~/Desktop/allhistory.log && zcat /var/log/apt/history.log*gz >> ~/Desktop/allhistory.log
сделает простой текстовый файл на Вашем Рабочем столе под названием "allhistory.log".
Среди прочего Вы будете видеть, например:
Start-Date: 2014-02-07 20:54:06
Commandline: apt-get install spell
Install: spell:amd64 (1.0-24), ispell:amd64 (3.3.02-6, automatic), ienglish-common:amd64 (3.3.02-6, automatic), iamerican:amd64 (3.3.02-6, automatic)
End-Date: 2014-02-07 20:54:15
Взгляд на вторые и третьи строки. То, что Вы хотите, находится на второй строке. То, что Вы не хотите, зависимости, находится на третьей строке. Именно поэтому мне нравится установка/удаление/чистка с командной строкой.
Теперь, для вхождения в список просто работайте:
$ grep ^"Commandline: apt-get install" ~/Desktop/allhistory.log > ~/Desktop/installed_apps.log
Вы получите список как это:
Commandline: apt-get install --no-install-recommends rox-filer
Commandline: apt-get install spell
Commandline: apt-get install ibritish
Commandline: apt-get install htop
Commandline: apt-get install --no-install-recommends python-pip
Commandline: apt-get install bootchart
, Очевидно, можно очистить вывод далее.
Обратите внимание на то, что вышеупомянутое не относится к установке никаким другим методом.