LINUX.ORG.RU

Философия языка программирования

 , , ,


0

2

Что такое философия языка программирования? Откуда она берётся? Есть ли философия, например, у Си и в чём она состоит?



Последнее исправление: grimwaken (всего исправлений: 1)

Откуда она берётся?

Очевидно, из идей создателей и проблем, которые он призван решать.

Есть ли философия, например, у Си и в чём она состоит?

«Переносимый ассемблер»

Gvidon ★★★★
()
Последнее исправление: Gvidon (всего исправлений: 1)

Что такое философия языка программирования?

это сборники красивых статусов для вк/однокакашников etc.
ИГРА. Угадай яп по философскому выражению.

Встретив двусмысленность, отбрось искушение угадать.

dada ★★★★★
()

Что такое философия языка программирования?

Ничего.

Deleted
()

Философия ЯП определяет то мировоззрение, которое нужно принять программисту, чтобы эффективно пользоваться этим ЯП, в соответствии с задумкой его создателя.

Не у всех ЯП есть философия. У Си например философии нет, там (за счет архаичности языка) в качестве мировоззрения вытупает лишь мифология. У LISP'а тоже философии нет, взамен неё религия.

Ну и cast qulinxao, разумеется.

CARS ★★★★
()

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

jtootf ★★★★★
()

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

Solace ★★
()

Что такое философия языка программирования?

Это тот набор бреда, которым автор языка пытается оправдать убожество своего творения.

hateyoufeel ★★★★★
()

Ничего. Если только не собираешься заниматься преподаванием или близкими вещами, то тебе это не нужно.

Miguel ★★★★★
()

Набор стандартных подходов, принципов, «идеоматичностей»

Debasher ★★★★★
()
Ответ на: комментарий от dada

Встретив двусмысленность, отбрось искушение угадать.

ну sql же: «Ambiguous column name in select»

unt1tled ★★★★
()
Ответ на: комментарий от CARS

больше ТС'у , но и :)

  • 1. Дизайн и философия плюсиков.
    • 1.1.https://www.linux.org.ru/forum/talks/10330889 в частности
      [qoute]
      1. http://www3.alcatel-lucent.com/bstj/vol57-1978/bstj-vol57-issue06.html
      
      2. UNIX Time-Sharing System: Forward
      
      3. page 5 (1903) : ...
      
      To many, The Unix systems embody Schmacher's dictum, «Small is beautiful.»
      
      оп-па cat-v'эвшики не народную мудрость то повторяют , а у максимы Автор есть(был).
      
      и буклет даже чьё название :
      
      E. F. Schumacher. Small Is Beautiful: A Study of Economics As If People Mattered
      
      а по местному :
      
      Эрнест Фридрих Шумахер МАЛОЕ ПРЕКРАСНО: ЭКОНОМИКА ДЛЯ ЧЕЛОВЕКА
      

      кста алькатель бука куда задвинули архив журнала знает кто?

    • 1.2 вот интересный сборник(хоть и 1983г сбора):(editor Ellis Horowitz) Programming language: A grand tour
      оглавление
       Programming Languages - The First 25 Years P.Wegner
       On the Design of Programming LanguagesN.Wirth
       Hints on Programming Language DesignC.A.R.Hoare
      
       Report on the Algorithmic Language ALGOL 60 P.Naure et al
       The Remaining Troublespots in ALGOL 60  D.E.Knuth
       A Contribution to the Development of ALGOL 60 C.A.R.Hoare and N.Wirth
       A Tutorial on ALGOL 68 A.S. Tanenbaum
       Ambiguities and Insecurities in PascalJ.Welsh, W Sneering and C.A.R.Hoare
       An Assesment of the Programming Language Pascal N.Wirth
      
       Can Programming Be Liberated from the von Neumann Style? A Function Style and Its Algebra of ProgrammsJ.Backus
       Resursive Functions of Symbolic Expressions.J.McCarthy
       LISP 1.5. Programmers ManualJ.McCarthy ... 
       The Design of APLA.D.Falkoff and K.E.Iverson
       
       Abstraction Mechanisms in CLUB.Liskov .... 
       Exception Handling in CLUB.Liskov.....
       Notes on the Design of Euclid .... B.W.Lampson ....
      
       The Programming Language Concurrent PascalP.Brinch-Hansen
       Modula: A Language for Modular MultiprogrammingN.Wirth
       Communicating Sequential ProcessesC.A.R.Hoare
      
       An Overview of Ada...
       FORTRANner's Lament...
       The C Programming Language  D.M.Ritchie, S.C.Johnson, M.E.Lesk and B.W.Kernighan
       C Reference Manual  D.M.Ritchie
       Ada Programming Language Reference ManualJ.Ichbiah et al
      


  • 2.ну и посмотри на 3? выпуска HOPL(History of Programming Languages)-конференций http://en.wikipedia.org/wiki/History_of_Programming_Languages
  • 3. смотри не Unix programmer's volume 1.(то что linux в виде man и info) а смотри Unix(либо FreeBSD) programmer's volume 2 различных версий Unix,FreeBSD,(Linux???) который сам обычно в несколько томов и есть сборник эссе(опытов) обьясняющих философию создания и использования тех или иных инстументов в том числе и языка С. пример (кусочка такого)оглавления:
    General Works
    1. 7th Edition UNIX — Summary.
    A concise summary of the facilities available on UNIX .
    2. The UNIX Time-Sharing System. D. M. Ritchie and K. Thompson.
    The original UNIX paper, reprinted from CACM.
    Getting Started
    3. UNIX for Beginners — Second Edition. B. W. Kernighan.
    An introduction to the most basic use of the system.
    4. A Tutorial Introduction to the UNIX Text Editor. B. W. Kernighan.
    An easy way to get started with the editor.
    5. Advanced Editing on UNIX. B. W. Kernighan.
    The next step.
    6. An Introduction to the UNIX Shell. S. R. Bourne.
    An introduction to the capabilities of the command interpreter, the shell.
    .
    .
    .
    11. Some Applications of Inverted Indexes on the UNIX System. M. E. Lesk.
    Describes, among other things, the program REFER which fills in bibliographic citations from
    a data base automatically.
    Programming
    14. The C Programming Language — Reference Manual. D. M. Ritchie.
    Official statement of the syntax and semantics of C. Should be supplemented by The C Pro-
    gramming Language, B. W. Kernighan and D. M. Ritchie, Prentice-Hall, 1978, which contains
    a tutorial introduction and many examples.
    15. Lint, A C Program Checker. S. C. Johnson.
    Checks C programs for syntax errors, type violations, portability problems, and a variety of
    probable errors.
    16. Make — A Program for Maintaining Computer Programs. S. I. Feldman.
    Indispensable tool for making sure that large programs are properly compiled with minimal
    effort.
    17. UNIX Programming. B. W. Kernighan and D. M. Ritchie.
    Describes the programming interface to the operating system and the standard I/O library.
    18. A Tutorial Introduction to ADB. J. F. Maranzano and S. R. Bourne.
    How to use the ADB debugger.
    Supporting Tools and Languages
    19. YACC: Yet Another Compiler-Compiler. S. C. Johnson.
    Converts a BNF specification of a language and semantic actions written in C into a compiler
    for the language.
    20. LEX — A Lexical Analyzer Generator. M. E. Lesk and E. Schmidt.
    Creates a recognizer for a set of regular expressions; each regular expression can be followed
    by arbitrary C code which will be executed when the regular expression is found.
    21. A Portable Fortran 77 Compiler. S. I. Feldman and P. J. Weinberger.
    The first Fortran 77 compiler, and still one of the best.
    22. Ratfor — A Preprocessor for a Rational Fortran. B. W. Kernighan.
    Converts a Fortran with C-like control structures and cosmetics into real, ugly Fortran.
    23. The M4 Macro Processor. B. W. Kernighan and D. M. Ritchie.
    M4 is a macro processor useful as a front end for C, Ratfor, Cobol, and in its own right.
    24. SED — A Non-interactive Text Editor. L. E. McMahon.
    A variant of the editor for processing large inputs.
    25. AWK — A Pattern Scanning and Processing Language. A. V. Aho, B. W. Kernighan and
    P. J. Weinberger.
    Makes it easy to specify many data transformation and selection operations.
    26. DC — An Interactive Desk Calculator. R. H. Morris and L. L. Cherry.
    A super HP calculator, if you don’t need floating point.
    27. BC — An Arbitrary Precision Desk-Calculator Language. L. L. Cherry and R. H. Morris.
    A front end for DC that provides infix notation, control flow, and built-in functions.
    28. UNIX Assembler Reference Manual. D. M. Ritchie.
    The ultimate dead language.
qulinxao ★★☆
()
Последнее исправление: qulinxao (всего исправлений: 1)

Достаточно (а в некоторых случаях необходимо) понять что такое «антифилософия» и экстраполировать это на предметную область.

Итак, для того чтобы понять что такое тьма - надо знать что такое свет. Без света не бывает тьмы...

Итак, «антифилософия» это когда... тупеешь еще больше и окончательно застреваешь в понятиях и путаешься в определениях...

anonymous
()

очень просто поясняю, на пальцах.

вот есть точка. обобщение понятия точки — линия. концепт — непрерывность. обобщение понятия непрерывность (над точками и линиями) — геометрия. обобщение понятия геометрия — алгебра. концепт — поле и кольцо (сложение и умножение; а если точнее, то два моноида).

далее, какие обобщения могут быть над алгеброй? и чем отличается формальная импликация от материальной?

если сравнивать булеву алгебру с аристотелевой логикой (и законы построения силлогизмов, см. например Ч. Доджсон «Логическая игра» (он же, Льюис Кэролл)) — то материальная импликация это качественная причинно-следственная связь, а формальная импликация — это формальная логика.

то есть: логика это обобщение алгебры. концепт — причинно-следственная связь, различные смыслы (или, разные принципы причинности — ср. с единственным принципом, аксиомой, законом причинности в физике). тогда философия — это обобщение логики (концепт — парадоксы и формальные системы, мат. логика). но философия не наука, а мировозрение, код, текст, метатекст — формальный язык (ср. теорему А. Тарского о невыразимости истины и метаязыке). не наука ещё и потому, что философия развивается от общего к общему — в отличие от частного к общему или общего к частному.

то есть, это такие гипермножества, кибернетика второго порядка, бутстрап система, или «система магов» Гёрцеля. или в терминах языков и треугольника Фреге: метациклический вычислитель (интерпретатор, компилятор, суперкомпилятор) для знака(обозначающего), концепта(смысла), денотата(обозначаемого).

или, другими словами, гипермножество — это разновидность класса и объекта в ООП.

здесь мы приходим к обобщению между логикой и топологией (а также теорией множеств/гипермножеств/теорией категорий и аксиомой выбора, ZFC):

топология это расширение геометрии («деформации, отображения без разрывов и склеек»), или логики (как частного случая алгебры) — преодоления логических парадоксов «без разрывов и склеек», расширением в метатеории и метаязыки, металогики.

например, как расширением из канторовской теории множеств (и аксиома выбора есть) в теорию категорий (и аксиомы выбора нет) — и в итоге интуиционистской или конструктивистской логикой.

в итоге, различные языки программирования задают разные «смыслы» (концепты в треугольнике Фреге), различные логики, различные «принципы причинностей».

то есть, различные философии различных метапарадигм моделей, метамоделей и теорий (ср. теория моделей: модель=теория).

то есть: различные парадигмы языков программирования — это различные философии.

а дальнейшее развитие топологии в логике — это топосы Гротендика (топос это пространство с изменяемой, программируемой топологией) над такими логиками и философиями, метапарадигмами.

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

далее вспоминаем что монада это моноид в категории эндофункторов, и выражаем топосы Гротендика через теорию категорий и топологию.

получаем кластер метапарадигм философий языков программирования.

anonymous
()

Есть ли философия, например, у Си и в чём она состоит?

when in doubt, use brute force

anonymous
()
Ответ на: комментарий от anonymous

Итак, для того чтобы понять что такое тьма - надо знать что такое свет. Без света не бывает тьмы...

ещё бывают многозначные логики и семантики Крипке: троичные («женская»: да/нет/не интересно(не имеет смысла)), пятеричная и т.п.

то есть, диалектика сосёт. тринитаризм рулит. и больше трёх.

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

и фрактальное ядро на границе (странные аттракторы и хаотические режимы).

anonymous
()
Ответ на: очень просто поясняю, на пальцах. от anonymous

эти разные «парадигмы принципов причинностей» как программируемых топосов логики в первом приближении можно отмоделировать на каузальных сетях Д. Крюкова и программируемой материи.

где разные философии будут задавать различные законы бытия: как в смысле онтологий (что есть в мире, метапарадигмы), как онтик (какие факты есть в мире), так и правил, концептов, парадигм, смыслов (семантики: что этот тип связи означает в этом контексте, в этом концепте).

anonymous
()
Ответ на: комментарий от anonymous

Итак, «антифилософия» это когда... тупеешь еще больше и окончательно застреваешь в понятиях и путаешься в определениях...

...следовательно, философия программирования есть некоторый способ фиксации и приумножения истины...

anonymous
()

Из ОБВМ страдателей СПГСом головного моска.

slackwarrior ★★★★★
()

У эрланга - «пусть падает»

У явы - «сделаем это энтерпайзно»

У хаскеля - «люди должны страдать»

У брейнфака философия в названии.

tlx ★★★★★
()
Последнее исправление: tlx (всего исправлений: 1)
Ответ на: комментарий от tlx

у хипстеров - javascript это бейсик для интернетов
нода.жс - я у мамы программизд повелитель серверных интернетов
(рак, поразивший /b/asic для интернетов теперь собирается на сервера и 10K хайлоады — модно, молодёжно, эвентуально и асинхронно. зачем учить сопрограммы, машины состояний, CPS преобразования (и эквивалентности этих трёх) да и CSP и акторы с эрлангами, кода есть клубничный смузи?)

anonymous
()
Ответ на: комментарий от CARS

то мировоззрение, которое нужно принять программисту, чтобы эффективно пользоваться этим ЯП

cюда же «Worse Is Better» и «New Jersey vs. MIT style» и хипстерское с рельсами «You Ain't Gonna Need It»

хипстота троллит дяденек-филосовоф: «это нинужно тебе нинужно» (почти как на ЛОРе)

anonymous
()
Ответ на: очень просто поясняю, на пальцах. от anonymous

теоремы Гёделя о (не)полноте, Тарского, Герока.

краткая предыстория вопроса. теорема Гёделя о неполноте. теорема А. Тарского о невыразимости истины (как бы намекает нам что есть истины не выразимые в формальном языке и следствиях (включая алгебры и программы), и что требуется переход в метаязык (DSL, язык на языке, или текст о тексте — поцмодерн, то есть мировозрение, философию).

далее, про связь логики с топологией (и (не)полнотой формальных теорий):

В 1944 г. Ганс Рейхенбах пришел к идее эквивалентности или симметрии логики и топологии: «Если бы мы попытались описать пространство с одной топологией с помощью пространства с другой топологией, появились бы каузальные аномалии», в частности «пространство одной размерности нельзя описать с помощью пространства другой размерности без допущения каузальных аномалий» (А.М. Мостепаненко, М.В. Мостепаненко). Вывод Рейхенбаха - «Топология пространства… связана с законами причинности» -лег в основу сформулированной в середине ХХ века теоремы Роберта Герока о дополнительности логики и топологии: «Если реализация физического процесса связана с изменением топологии, то с точки зрения старой топологии оно будет восприниматься внешним наблюдателем как неожиданное нарушение закона причинности» (И.А. Акчурин). Теорема Герока раскрывает топологический смысл теоремы Геделя: «Если мы используем классическую логику, то в случае, когда… происходит изменение топологии, оно будет нами восприниматься как резкое нарушение – в понятиях старой топологии – принципа причинности»

В начале 60-х годов ХХ века Александр Гротендик ввел в математику пространство с переменной топологией – «пространство в новом стиле» или «топос» (А. Гротендик). В топосе Гротендика реализуется симметрия логики и топологии, о которой говорит теорема Герока.

далее предположение, что если навертеть эти топосы Гротендика и универсальные модели в топосах поверх каузальных сетей и программируемой материи (например, биокирпичей и синт.био) — то тут-то всё и завертится.

собственно, Оливия в тексте по ссылке про топосы приводит пример не только философический, про солнце и тени (идеи как абстрактные понятия, то есть, унимодели в топосах — и их отражения, то есть, философии). но и про ДНК.

now time to shit bricks. biobricks

anonymous
()
Ответ на: комментарий от buddhist

У Си например философии нет

Пайк и Керниган в недоумении

Автором Си является Д. Ритчи

forCe
()

Что такое философия языка программирования?

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

Откуда она берётся?

Из головы автора языка. Иногда из его окружения, первых пользователей языка.

Формализована, как правило, слабо. На полноценную философскую систему, естественно, не тянет.

forCe
()
Последнее исправление: forCe (всего исправлений: 1)

Есть ли философия, например, у Си и в чём она состоит?

Ты прострелишь себе ноги, и будешь этому радоваться.

daniilArch ★★
()
29 мая 2015 г.

Что такое философия языка программирования? Откуда она берётся? Есть ли философия, например, у Си и в чём она состоит?

Конечно есть! Каждый язык, прежде чем появиться на свет божий, имел свою философию. Если взять язык СИ, то философия его рождения была простой: получить мощный инструмент программиста, на котором было бы возможно реализовать любую мыслимую концепцию программирования(Си++ вырос из белых штанишек Си, но так и остался гадким утёнком в серых штанах. Несмотря на свою кажущуюся мощь, Си++ создаёт больше ограничений, чем чистый Си ). Поэтому Си и не имеет определённой парадигмы или философии, он просто предоставляет программисту полную свободу действий для реализации своих идей. Создатели Си++ просто взяли Си и реализовали на нём свою идею - Си++... Чем более низкоуровнее язык, тем большей мощностью он обладает, и позволяет создавать на нём более мощные конструкции... Теперь оглянемся на Паскаль... Почему Паскаль кажется игрушечным языком? Да потому, что на нём изначально планировалось обучать детей... А детям нужно что? - игрушки. Потом появились дядьки, которым захотелось натянуть на игрушечный детский Паскаль пиджак взрослого человека, но в итоге получилось вообще неизвестно что... А всё почему? Да потому, что старина Вирт изначально исходил из такой строгой философии: только структурное программирование и ничего более того! Структурное программирование тогда было новой парадигмой и модой. В угоду ему и была предпринята попытка создания языка строгого структурного стиля, со строгой типизацией данных. Дейкстра и Вирт ненавидели оператор goto лютой ненавистью, и хотя Вирт и оставил его в первоначальных версиях своего творения, но полностью избавился от него в последующих. И с этого момента язык который раньше назывался «языком программирования» теперь полностью перестал им являться по определению. В языке Си, напротив, не только присутствует этот оператор, но создатели компиляторов с этого языка пошли ещё дальше: они добавили указатели на метки! (расскажите мне про языки, в которых есть сия приблуда, - я обязательно выучу те языки, - без балды)...А ведь указатели на метки позволяют создавать самомодифицируемый код! Я вообще считаю что оператор goto является основой любого настоящего языка программирования и в этом смысле старый бэйсик был наиболее близок к истине...А теперь к ней ближе всего чистый Си. Потом появилось ржа в умах под названием «структурное программирование», в котором первый if начинается на одной странице а где он кончается надо было искать на третей или пятой... При этом они(апологеты концепции структурности) говорили что невозможно читать программы с оператором goto. А по мне, так невозможно читать так называемые «структурные» программы. Я хочу прослеживать цепочки переходов а не искать потеряные скобки или ифы по всему листингу. Я хочу видеть БЛОКИ, а не кашу... Изначально не была правильной концепция структурности, так как строилась сия концепция на неправильных посылках. На мой взгляд существует всего две основополагающие конструкции, а не три. Это конструкция выбора и следования. Причём у конструкции выбора не один вход и один выход, как утверждали старые философы от программирования, а один вход и два выхода. Это кардинальное различие. Также и цикл не является основной конструкцией с одним входом и одним выходом(выходов может быть много), так как строится она из ифа и оператора перехода. Оператор перехода это «действие» или «метод» или «вентиль» который управляет и направляет потоки. Но идём далее... Далее, на обломках структурности выросло дерево под названием ООП, которое уже в раннем возрасте имело все признаки уродливого дитя от структурной мамы. Ребёнок рос, рос, и вырос в огромного монстра, шрека с зелёной кожей и ушами в трубочку, который любит иногда подпортить воздух:)) Нет, - это уже не язык. Это уже нечто похожее на аморфное медузоподобное и издающее нечленораздельные звуки, существо, которое рушится на глазах под своими тяжёлыми бегемотоподобными складками толстой непробиваемой кожи... Но оставим.. Есть на мой не предвзятый взгляд, лишь одна, по настоящему самая главная и истинная концепция и философия: это его величество Алгоритм. Это - единственная концепция. И если какой-либо язык позволяет реализовать Алгоритм который был рождён воображением программиста, просто и чисто, без окольных путей, без костылей и извращений, то этот язык достоин внимания. Пока таким языком является чистый Си.

shkolnik
()
Ответ на: комментарий от korvin_

Можно назвать это ASCII-artом, но скорее всего это определённое дао определённых людей, которое совершенно согласуется с духом UNIX. Underground.

shkolnik
()

как тебе может быть известно

философия - это наука как правильно умирать.

следовательно твой вопрос эквивалентен:

Как умирают языки программирования и как(что) в языках(индивидуально) особого в части своего экстерминуса?

qulinxao ★★☆
()

Есть ли философия, например, у Си и в чём она состоит?

Нет ЯП, кроме ассемблера, и С — пророк его!

На самом деле, я уже который год все (от фигни, вроде "скриптов" и веб-морд, и до числодробилок) на сях делаю. И как-то до сих пор не нашел ни одного ЯП, пригодного для моих нужд, и более удобного, нежели божественная сишечка.

Покажите мне такой ЯП!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Есть, например, нейросимулятор, написанный эксклюзивно под это «несерьёзное дерьмо».

anonymous
()
Ответ на: комментарий от Eddy_Em

от фигни, вроде «скриптов» и веб-морд

пока ты напишешь тот-же web-scapper, или сложный парсер на Си, на любом скриптовом (python/perl) можно будет сделать это в 1/10 времени и остальное потратить на что угодно другое.

Deleted
()
Ответ на: комментарий от Eddy_Em

Мне работать надо, а не фигней маяться.

Число комментариев: 83689

aedeph_ ★★
()

поциенты, расходитесь уже по палатам

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.