LINUX.ORG.RU
Ответ на: комментарий от anonymous

Не налегай так на квас, дата первого релиза здесь ни при чём.

Использовал эти два ЯП программирования одно время.
Так что говорю о том в чём имею опыт разработки.
Давно уже не использую ни Perl ни bash, так как для системного программирования они не пригодны.

anonymous
()

Здравствуйте. Объясните мне пожалуйста, что такое bash и как его можно на деле применять?

Вам хороший совет дали.
Введите в поисковой строке «Объясните мне пожалуйста, что такое bash и как его можно на деле применять» …

anonymous
()

bash – это интерпретируемый алгол-68, только не конпелируемый как в Algol68C или в GCC 15, и не полноценный, но интерпретируемый как в Algol68-G Genie.

а недоделанный.

доделанный алгол-68 (помимо Algol68c, marst и gcc 15, или интерпретируемый Algol68G) более простой и понятный – это Ада.

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

интерпретируемая Ада есть например под ДОС, или встраиваемая в текстовый редактор.

на Аде можно писать под Linux, POSIX: BOPLAP : The Big Online Book of Linux Ada Programming

интерпретируемая Ада в виде шелла (как и Bash) – это AdaScript/Bush Script/SparForte

это более правильный Bash.

на Bash можно писать ебилды в CRUX, NuxTyx, Arch и форках.

Bash-ем можно качать HTTP и прочие сокеты, парсить логи, обрабатывать регулярки.

только всё там сделано кривовато, в отличие от более полноценного языка программирования в качестве шелла.

даже алгол68 (Genie, или C, marst) – более полноценный, чем это (Bash) в качестве ЯП, а не шелла.

более полноценный шелл+яп– это даже не csh/tcsh (…/pike/pawn/…. – интерпретируемый С) – а например rc, ex, sh из Plan9 и Inferno. или какой-то шелл на лиспе (lush, scsh,janet, fare: Common Lisp, и т.п., тысячи их)

или например, Bush/SparForte/AdaScript. можно написать скрипт, затем переписать его в конпелируемую аду.

ещё есть например joe/jed, most, slrn в котором скриптовый язык sl – интерпретируемый с синтаксисом си, но с семантикой форта.

для него есть плагины и FFI, встроеные обычные числа и комплексные (нормальные обычные не boxed объекты, как в python, работает быстрее).

в итоге есть,например, slgtk и для него генератор привязок slirp.

в итоге на этом можно написать например guilets аналогично applets – гуйняшки, гуёвые приложеньица

например, была такая оконная система как NeWS: внятное описание – здесь starynkevitch.net/Basile/NeWS_descr_oct_1993.html

Display PostScript который загружался в оконном сервере (NeWS) как пакет объектов (TNT), виджетов на оконном посконном постскритпт (объектно-ориентированном или функциональном форте). у него было несколько дополнительных стеков – стек возвратов, стек данных, стек контекстов (типа gsave/grestore в PS, только оконных, canvas), стек окон/холстов, стек событий, стек/очередь сообщений.

оконный сервер (NeWS) – создавал сокеты и ждал соединений. оконный клиент (приложение на NeWS) – открывал 2 соединения, одно для команд на Display PostScript, второе для lwp (корутин на сервере). затем клиент загружал в сервер все нужные ему объекты (прямо в консоль интерпретатора DPS). сервер ждал событий, некоторые обрабатывал сам, другие эскалировал в загруженные объекты и их коллбеки. часть коллбеков была на DPS через TNT в клиенте, часть через коллбеки на сишечке.

starynkevitch.net/Basile/guisdoc.html – это реализация этой же идеи на GTK2+python (тоже 2, кажется).

для гуйни – guilets или гуйлеты (по аналогии с апплетами, приложеньицами, или гуйняшечками) – это реализация той же самой идеи, только на встраиваемом форте SL, а не на Display PostScript.

пример guilet – здесь …/slgtk/doc/html/slgtk-6.html

там же рядом есть ещё примеров, например, imdisplay, evt2img, vwhere – где можно наблюдать себе невозбранно примеры этаких гуйняшечек.

смысл в том, что подобные GUIlets можно написать в принципе и на bash под gtkserver, например.

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

анон, ты недорабатываешь ))) такое бодрое начало и такой вялый конец ))

bash – это интерпретируемый алгол-68

ну, смотри, мог бы развернуть ветвь повествования алгол -> схема -> жс 🤭 срач бы был, а теперь чо… ))

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

но зачем? тогда же придётся начинать с примеров в Algol-68G Genie где есть недоинтерпретатор лиспа на алгол-68. потом его доработать в полноценную схему (или взять из poplog, интерпретаор схемы на pop-11 , или взять SECD машину из LispKit на паскале и переписать под алгол-68)/

потом берём dylan и прикручиваем к thomas (dylan 0.95 с синтаксисом схемы) – алгольный синтаксиси. получаем конпелируемый через сишечку (или LLVM) лисп с синтаксисом алгола и лисповыми макросами, D-expressions.

и прикручиваем (на poplog, Shen lisp, Dylan, scheme) – синаксическими макрами синтаксис JavaScript.

получаем более полноценный лисп но с синтаксисом ЖС, и показываем чем полноценный лисп от неполноценного жопаскрипта отличается.

чтобы

ветвь повествования алгол -> схема -> жс 🤭 срач бы был, а теперь чо… ))

, ога :)))

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

в смысле

полноценную схему (или взять из poplog, интерпретатор схемы на pop-11

взять здесь www.cs.bham.ac.uk/research/projects/poplog/v15.65.html сам PopLog (или на гитхабе, там 64-битный форк лежит, как и по ссылке) и реализацию схемы на pop-11 poplog Scheme.p из Scheme.zip/Scheme.tar.gz из www.cs.bham.ac.uk:80/research/projects/poplog/freepoplog.html

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

инкрементальный конпелятор, ~90мб среда, свой емакс ved/xved на поплоге, няшные привязки к православному Motif и OpenWindows, объектно-ориентированный лисп (не CL), CL, пролог и сам поплог (поп-11) из коробки, системный поплог поп-11 на котором всё это и написано.

правда, разработку в образе кажется отрубили в бесплатной версии.

и вообще, интересно что там более свежее получилось чем в вебархиве.

а так примерно как и в Shen/Qi из Book of Shen – лисп с прологом, CLOS и своим велосипедом, с парсером типа yacc «из коробки»

можно смотреть Элизу и SHRLDU, SimAgent и POPLOG Primer, вступать и конпелировать, ога (или инкрементально реконпелировать почти как интерпретировать только без образа)

в общем, поплог тоже довольно занятный недоязычок, хотя можно взять Shen поверх CL или Scheme где всё примерно тоже самое.

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

У вас весьма богатые знания о ЯП.
Это не плохо.
Больше всего удивляет то, что за 60 лет разработки ЯП разработчики
так и не поняли, что технология разработки ЯП с использованием грамматик
просто не прогдна для разработки ЯП с богатой функциональностью и удобным синтаксисом.
Грамматики ведь вовсе не панацея …

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

news

latest poplog: poplogarchive.getpoplog.org/latest-poplog/ v16 32/64 bit обновлялось в 2020 году

например, можно сравнить реализацию Eliza на bush: bushtutorial из SparForte examples/eliza.html и на PopLog: простая и наивная реализация здесь cogaffarchive.org/eliza/ и здесь research/poplog/eliza/cgi-bin/eliza2.p, но более приятная с настраиваемым списком правил – в TEACH rulebase research/projects/poplog/newkit/prb/teach/rulebase.html

вот, а Bash тут при том – что настолько простая и наглядная Элиза – там не получится.

впрочем: как и SHRLDU, например.

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

это смотря какие грамматики.

опять же, вот например, алгол-68 – многоэтажные WG грамматики Вейнгаардена задают не столько синтаксис, сколько семантику.

атрибутивные грамматики, например, ANN используются для разбора ЕЯ – см. например, реализацию SHRLDU где в PopLog даже более наглядно, чем в CL.

всякие META II , OMETA, TreeMeta, PEG, PEG parse tree грамматики — для конструирования RDP рекурсивных нисходящих с более нормальными сематическими предикатами. ANTLR – LL(*) с семантическими предикатами.

синтаксис LL(1), LR – как, годится в качестве

ЯП с богатой функциональностью и удобным синтаксисом

достаточно удобен? парсер в CoCoR – довольно нагляден, советую читать сразу книжку с примерами (и оригинальную реализацию под модула-2 или ада для ещё большей наглядности).

синтаксис PL/I – достаточно удобен? парсер есть в XPL, который транслирует PL/I (разновидность) в Си, через bottom-up а не top-down парсеры, довольно таки расширяем синтаксис в некоторых пределах (опять же, см. книжку в комплекте к XPL)

в Book Of Shen – Qi Yacc транслирующий yacc-подобное в лисп. в Poplog на pop-11 – тоже нечто подобное.

в Racket, и прочих Scheme – тоже есть yacc подбные парсеры.

например, в Guix дистрибутиве есть парсер си на Guile Scheme.

ну и на фортах тоже есть варианты, см. например статьи J.V. Noble.

в общем, не понял насчёт "просто не прогдна" – полно различных удобных вариантов

Грамматики ведь вовсе не панацея …

это да – в бОльшей степени нужен, например,гибкий нормальный язык с нормальной системой типов и реализацией динамических переменных, first class objects, first class types и всего вот этого…

например, вот на gcc от того же Basil Starynkevich есть и GCC MELT starynkevitch.net/Basile/gcc-melt.html starynkevitch.net/Basile/gcc-melt/docum.html tutousemeltlang.html gcc-melt/download.html гитхаб github.com/bstarynk/gcc-melt и github.com/bstarynk/melt-examples

то есть, хоть какой-то вариант, но – лиспа. для представления SSA деревьев и прочих потрохов GCC.

правда, не вполне полноценного (см. отличия в tutousemeltlang)

с другой стороны, он уже начинает задумываться о хранимых объектах, персистентных : persistence-doc.html

и о новой версии – на базе всего этого, github.com/bstarynk/bismon, ортогональной персистентности всего этого и далее, RefPerSys.org, например. и например, транспиляторах всего этого во всё что нужно, куда угодно (см. в github.com/bstarynk/misc-basile transpiler-refpersys.{cc,hh}, например).

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

в общем, может в духе RefPerSys.org и книжки J.Pitrat про эмоции агентов и мотивацию и возможно написать на всём этом нечто эдакое.

но можно, на мой взгляд и проще. например, взять лисп конпелируемый в LLVM, например, CLASP github.comclasp-developers/clasp и пример github.com/clasp-developers/clasp-hello-world

и сопрягать себе невозбранно лисп с С++, например.

ну то есть: вот он задумывается уже фактически о подходящем хранилище персистентных объектов-документов в духе ООСУБД или gccxml / unzip file.odt.zip , только разбираемый макросами лиспа.

но лисп у него всё ещё плагинный, былинный, исконный и посконный. немного не доделанный по сравнению с тем же CL, например. или даже хотя бы и поплогом.

так почему бы не взять более полноценный лисп и писать на нём и фронтэнд, а не только бекенд GCC?

неведомого метапрога поверх всего этого….

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

в общем: Владимир, объединитесь с Василием на тему персистентности.
он как раз искал какое-то персистентное хранилище ООСУБД лисповых объектов.
ещё интересно было бы книжечку J. Pitrat зачитать на тему философии всего этого.

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

так почему бы не взять более полноценный лисп и писать на нём и фронтэнд, а не только бекенд GCC?

Ответ на это дали уже миллионы программистов.
(((((((Мног)))))(го)))((((((((((((((((скобок))))))))))))))))
Проще говоря не концепция языка плоха, а синтаксис.

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

И для этого не обязательно разрабатывать систему ИИ.
Достаточно лишь какой-то небольшой её части.
Вот потому и разрабатываю ныне систему хранения данных любой сложности (и взаимосвязи).
Без неё никак …

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

в общем, или нормальная семантика, или скобки в дефолтной грамматике – одно из двух, не оба сразу (хотя Джон МакКарти и предлагал изначально M-выражения в комитет алгола, а не только S-выражения, вполне в духе самого сообщения об алголе где официально 2 синтаксиса, полный и сокращённый; и несколько IR представлений типа .stropped в самом стандарте; и многоязычность рус/англ/нем как синонимы к WG-грамматикам над семантикой)

хорошо хоть, что другие альтернативные синтаксисы поверх скобкосинтаксиса не сложно прикрутить, при желании

да хоть естественноязычный, в духе хайку или «сказки о сказке»

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

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

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

Такой ЯП уже есть и называется - Си.

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

это какую же ? и какого именно человека?

вот всякие там int (*foo)(char* *bar, z (**x)(y,*w,**v), ....) контринтуитивны в этом смысле, по моему

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

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

то ли дело массивы в bash, например…

… вот внезапно обнаружил, что в NuTyx ебилды как и в CRUX тоже на баш пишут… и активно пользуются всеми этими перлоподобными регулярками и массивом URL к сорцам, например.

странно ещё что через сокеты порты и пакеты сорцов башом не качают, хотя и могут.

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

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

Всё это решаемо путём разработки системных библиотек.
Кстати до некоторой степени правильно поступили разработчики 1С.
Они всё низкоуровневое спрятали от программиста.
Поэтому на нём наваять какое-либо дерево проще паренной репы …
Не утверждаю, что реализация идеальна, но сам подход всё же неплох …

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

был какой-то конпелируемый баш (под винду кажется, где-то в районе MKS toolkit ) – который транспилировался в сишечку (и линковался с батарейками)

и кто-то полиглотные исходники типа квайна или justine.lol на нём писал, где #define WE_USE_C_NOT_BASH bar в баше как комментарий, а в сишке – исполняемый кот.

в духе ioccc такое вот.

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

Ю был какой-то конпелируемый баш (под винду кажется, где-то в районе MKS toolkit ) – который транспилировался в сишечку (и линковался с батарейками)

Отвечу экспромтом.
Вот если бы он поддерживал разного рода объекты (любой сложности архитектуры) и транспилировал в Си, то скорее всего был бы интересен …

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

кстати, а есть ли на какой-то розеттокоде примеры объектно-ориентированного программирования на bash?

просто не знаю, давно на obfuscated contest не заходил….

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

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

Ещё раз - архитектура объекта может быть любой сложности …
ИМХО весьма удобно и просто.

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

Пока такой путь решения задач связанных с использованием объектов.

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

напрашивается какая-то ООСУБД поверх всего этого. но тогда вопрос, зачем нужно разрабатывать своё, а не взять какое-то готовое ООСУБД или например тот же MUMPS: GT.M, EsiObjects для реализации подобной ООСУБД?

в общем, чем ваше хранилище лучше типичной ООСУБД типа GOODS, Perst, Cache InterSystems, GlobalStorage, GT.M, YottaDB и т.п.?

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

Конечно не панацея, но многие из задач с использованием такого подхода много проще решаемы.
Да и нет необходимости в создании 1001 велосипеда …

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

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

Никаких адекватных учебных пособий по лиспам нет, а вот обоснование почему не надо касаться этого длинной палкой, причём исключительно по делу, у Столярова я читал и даже проверял все то о чём он там писал. На SICP кивать не надо, книга реально достойная, только требует солидной базы. И по выше изложенной причине бесполезная. Да и мите по ней не преподают. Преподают python.

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

Блин. Вы реально уже на нервы действуете. Наверное, я перед тем, как задать тут этот вопрос, смотрел и на оф вики, на неофициальных вики и т.д.

Во-первых, откуда мне это знать? Из твоего вопроса этого не видно.

Во-вторых, люди, изучавшие материал самостоятельно, задают конкретные вопросы. Например: «На странице такой-то такой-то книги написано вот это. Почему в этом примере использовано X а не Y

Ты же приходишь и задаёшь вопрос вселенского масштаба и вселенской же тупости: «Объясните мне пожалуйста, что такое bash и как его можно на деле применять?» Что ты ожидаешь в качестве ответа? Что я брошусь специально для тебя пересказывать десятки уже написанных книг?

P. S. На вот, почитай на досуге: Как правильно задавать вопросы.

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

Шпаргалка git bash https://gist.github.com/supervoron1/510a91d47f3bb51a24e1090f63188bcb

30 Bash Script Examples to Elevate Your Scripting Skills
https://www.haikel-fazzani.eu.org/blog/post/30-bash-script-examples

Примеры Bash скриптов https://losst.pro/primery-bash-skriptov

bash хорошо заточен для разработки всякиих админ скриптов.

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

Баш это то самое черненькое окошечко, в которое нужно вводить команды, чтобы линукс работал.

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

anonymous
()