EduTranslator

Научные работы со всего мира

Рубрика: Программирование (стр. 1 из 2)

Веб-Инжиниринг

Оригинал статьи доступен по ссылке.

Майкл Бибер

Кафедра Информатики

Йинг Ву колледж вычислительной техники

Технологический институт Нью-Джерси

Университет Хейста, Ньюарк, Нью-Джерси 07102 США

bieber@njit.edu

http://web.njit.edu/~Bieber

Аннотация

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

Мотивация

По мере взросления Всемирной паутины и инструментов ее программирования, мы все чаще находим аналитические приложения с веб-интерфейсами и другими веб-сайтами с контентом, созданным вручную. Это включает в себя большой класс устаревших систем, организации которых спешат преобразоваться в веб-интерфейсы [Be95]. В этих документах рассмотрены вопросы разработки приложений для всех таких систем. Это также устраняет опасность того, что разработчики наделят эти системы скудостью ссылок вместо того, чтобы украшать их богатым слоем ссылок и навигационных возможностей, которые могли бы поддерживать интернет [BV97].

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

 

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

Одной из главных целей гипермедиа является предоставление ссылок, представляющих отношения приложений, которые дают пользователю доступ к тому, что он хочет.  Мы используем двухэтапный подход к разработке приложений для Всемирной паутины.  Сначала разработчик выполняет анализ взаимосвязи-навигации, анализируя существующее или новое приложение конкретно с точки зрения его внутренних — и взаимосвязей.  Это приводит его или ее к лучшему пониманию сложности и богатства программы, а также обеспечивает доступ и метазнания пользовательского желание.   Во-вторых, динамический гипермедийный движок (DHymE) автоматически генерирует ссылки для каждой из этих взаимосвязей и элементов метазнаний во время выполнения, а также сложные методы навигации, которые не часто встречаются в Интернете (например, экскурсии, обзоры, структурный запрос) поверх этих ссылок.  Ссылки и навигация, а также функции примечаний дополняют основную функциональность приложения [BK95, Bi98].

Анализ взаимосвязи и навигации

Метод взаимосвязи-навигационного анализа (Relationship-Navigation Analysis /RNA) состоит из 5 шагов:

  • Анализ заинтересованных сторон
  • анализ элементов
  • взаимосвязь и анализ метазнания
  • анализ навигации
  • анализ реализации взаимосвязи и метазнаний

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

В то время как весьма полезно в его нынешней форме, мы намерены развивать технику RNA дальше, производя конкретные принципы для каждого шага и за счет сокращения диапазона вариантов, которые разработчик должен рассмотреть в рамках шагов анализа 2 и 3. Эти уточнения должны сделать анализ более систематическим и легким для осуществления, в то же время позволяя ему оставаться открытым.

Шаг 1: Анализ заинтересованных сторон

Целью анализа заинтересованных сторон является определение аудитории приложения. Знание того, кто будет заинтересован в приложении, помогает разработчику широко определить весь спектр важных элементов и связей, а затем сосредоточиться именно на них. Это особенно актуально для тех приложений, которые имеют общий доступ к Интернету, имеют гораздо более широкий круг заинтересованных сторон, чем многие себе представляют.  Многие разработчики, по сути, считают эту часть RNA самой просвещающей.  Разработчик также должен определить и понять задачи, которые каждый тип пользователя будет выполнять в приложении. Это поможет разработчику сосредоточиться на конкретных областях во время последующих шагов RNA.

Шаг 2: Элементный анализ

Здесь разработчик перечисляет все потенциальные элементы, представляющие интерес для приложения. На одном уровне к ним относятся все типы элементов, отображаемых на любом интерактивном дисплее (информационные экраны, формы, документы и любые другие типы отображения), а также экраны, формы и сами документы. Самый простой способ начать – изучить каждый экран (или макет) и определить каждое значение и пометить его. Обратите внимание, что разработчик должен определять виды или классы элементов, а не отдельные экземпляры. Типы отношений, которые мы обсуждаем на шаге 3, относятся к определенным типам элементов. Например, в области анализа решений к ним относятся «модель» и «значение данных » в отличие от конкретных моделей или значений данных.

Шаг 3: Анализ взаимосвязи

Анализируются взаимоотношения взаимоотношения, внутривидовые отношения и метазнания. Разработчик должен рассмотреть каждый элемент интереса, выявленных в предыдущем этапе, с точки зрения каждого из видов отношений, для каждой группы заинтересованных сторон. Определенные отношения будут полезны только определенным заинтересованным сторонам, и механизм гипермедиа будет фильтровать их. Связи могут приводить к информации внутри и вне приложения. Разработчики не должны чувствовать себя ограниченными реальными соображениями доступности, затратами или усилиями на реализацию. На этом этапе они должны максимально полно проявить свои творческие способности. Только на шаге 5, они должны решить, как реализовать обнаруженные отношения и метазнания.

RNA в настоящее время помогает разработчикам определить следующие типы отношений и метазнания в приложении: схема, процесс, операция, структурные, описательные, параметрические, статистические, отношения совместной работы и упорядочения.  [Bi98] дает более подробную информацию для каждого.  Бибер и Витали [BV97] показывают, как некоторые из этих общих типов отношений могут дополнять онлайновый счет продажи. [Bi98] показывает, как они могут дополнять систему поддержки принятия решений математического моделирования.

Шаг 4: Анализ навигации

После того, как мы определим отношения, мы можем думать о том, как пользователь может получить к ним доступ. Наиболее простая реализация сделает каждое отношение ссылкой, а затем обеспечит простой обход (пользователи, выбирающие якорь и ссылку, и система, отображающая назначение ссылки). Но некоторые типы отношений поддаются более сложной навигации. Концепция гипермедиа включает в себя множество других навигационных функций, основанных на связях или ссылках. К ним относятся экскурсии и маршруты, обзоры и структурный запрос [BVA97, Ni95]. На этом этапе РНК разработчик должен решить, какие функции навигации могут наилучшим образом удовлетворять потребности заинтересованных сторон.

Шаг 5: анализ реализации взаимосвязи и навигации

Очевидно, что Шаг 3 может генерировать много отношений, а Шаг 4 может генерировать много возможных навигационных возможностей. На этом этапе разработчик должен решить, какие из них следует реализовать. Этот шаг не является фактической реализацией, а просто логическим решением, какие отношения следует реализовать. Разработчики должны учитывать затраты и выгоды (фактические и предельные) как реализации, так и отображения каждого этапа. Мы отделяем этот шаг от шагов 3 и 4, чтобы разработчик мог реализовать все свои творческие таланты без ограничений по соображениям реального мира.  Затем конструктор создает правило сопоставления (в указанном формате) для каждой из реализуемых связей.  Правила сопоставления определяют команды или алгоритмы поиска конечной точки каждой связи.

DHymE (Dynamic Hypermedia Engine)

Dhyme hypermedia engine выполняется отдельно от целевого приложения.  Мы пишем программу-оболочку для каждого приложения, чтобы интегрировать его в архитектуру нашего движка.  Затем приложения или их оболочки подключаются к DHymE через прокси-сервер.  DHymE перехватывает все сообщения, передаваемые между приложением и пользовательским интерфейсом, и использует указанные выше правила для сопоставления каждого соответствующего элемента сообщения узлу гиперсреды или якорю.  Наша оболочка веб-браузера интегрирует эти якоря в отображаемый документ и передает его через прокси-сервер в веб-браузер пользователя.  Когда пользователь выбирает якорь, оболочка браузера передает его DHymE, который возвращает список возможных ссылок (по одному для каждого соответствующего отношения, как определено правилами сопоставления).  Если пользователь выбирает обычную команду приложения (сопоставленную ссылке операции), DHymE передает команду приложению для обработки.  Если пользователь выбирает ссылку на движок гиперсреды (например, для создания аннотации), DHymE обрабатывает ее полностью.  Если пользователь выбирает дополнительную схему, процесс, операцию, структурное, описательное, или информационное вхождение отношения, DHymE выводит соответствующие команды приложения, операции мета-приложения (например, на уровне операционных систем или на уровне схемы) или операции гипермедиа движка, который будет производить необходимую информацию.  Если пользователь выбирает созданную пользователем аннотацию, DHymE извлекает ее.  Таким образом, DHymE автоматически обеспечивает все перелинковки (а также навигацию) с приложениями, которые остаются не знающими гипермедиа и на самом деле часто полностью неизменными. В настоящее время мы интегрируем несколько приложений с DHymE, автоматически предоставляя каждому веб-интерфейс или дополняя его существующий веб-интерфейс: систему отслеживания заявок на персонал, систему управления связанными базами данных, систему управления математической моделью, систему анализа транспортных электронных таблиц и инструмент анализа поддержки принятия решений с несколькими критериями.  [Bi98] описывает эти идеи и более старые, а также не-веб прототип DHymE более подробно.  [Bi97, CB97] предоставляет некоторые сведения о движке.

Вывод

Мы надеемся, что наш наиболее весомый вклад будет заключаться в том, чтобы убедить разработчиков веб-приложений (как новых, так и перенесенных из других компьютерных сред) в полной мере использовать возможности компоновки в своих приложениях. Снова и снова дизайнеры говорят нам, что RNA показала им ссылки, которые они никогда не представляли в своих приложениях. Их выявление является необходимым первым шагом на пути к имплементации моделей. Реализованные продуманно, веб-ссылки и навигационные средства могут пройти долгий путь к снижению сложности приложений для пользователей.  RNA предоставляет разработчикам инструмент для определения возможностей дополнительной компоновки в приложениях.  DHymE hypermedia engine автоматически генерирует эти ссылки, практически без изменений в приложении.

Благодарность

Выражаем признательность за финансирование данного исследования аспирантской программе факультета JOVE NASA, Центру мультимедийных исследований в Нью-Джерси, Национальному центру транспорта и промышленной производительности в Нью-Джерси Технологическому институту (NJIT), Департамент транспорта Нью-Джерси, Комиссии по науке и технологии Нью-Джерси, а также грантам фондов Слоана и AT&T, и программе NJIT SBR.

Ссылки на литературу

  • [Be95] Беннет К. Системы наследия: справляясь с успехом. Программное обеспечение IEEE, январь 1995, 19-23.
  • [Bi97] Бибер, М., Гипертекстовый движок: поддержка вычислительных приложений, Техническое примечание, 1997.
  • [Bi98] Бибер, М., Дополнение заявок Гипермедиа, Техническая записка, 1998.
  • [BK95] Бибер, М. Качмар К. Проектирование гипертекстовой поддержки вычислительных приложений. Сообщения АСМ 38 (8), 1995, 99-107.
  • [BV97] Бибер М. Витали Ф. (1997). К поддержке гипермедиа во Всемирной паутине. IEEE Computer 30 (1), 1997, 62-70.
  • [BVA97] Бибер, м., Витали, Ф., Ашман, Х., Баласумарян В. и Ойнас-Кукконен, H. Гиперсреда четвертого поколения: некоторые недостающие ссылки для Всемирной паутины. Международный журнал компьютерных исследований человека 47, 1997, 31-65.
  • [CB97] Чиу, С. и Бибер, М., Универсальное динамическое сопоставление обертка для открытой гипертекстовой системы поддержки аналитических приложений, Hypertext’97 Proceedings ‘ 97, АСМ Press, Нью-Йорк, Нью-Йорк, апрель 1997 года, 218-219.

[Ni95] Ниельсен Дж. Мультимедиа и гипертекст: Интернет и не только. AP Professional, 1995.

Пакет jay

Оригинал статьи доступен по ссылке.

Це сайт Джей, LALR(1) генератор синтаксичних аналізаторів: Berkeley yacc © перенаправлені на C# і Java.

Дивіться: Опис

Опис пакета jay

Це домашня сторінка пакету jay, LALR(1) генератора парсерів:

  • Використання
  • Вхідний формат
  • Дженеріки
  • Файли основи
  • Управління класом
  • Завантаження

Використання

jay читає граматичну специфікацію з файлу і генерує для неї парсер LALR (1). Синтаксичний аналізатор складається з набору таблиць синтаксичного аналізу та підпрограми драйвера на наборі, який рахується від стандартного вводу. Відповідні набори існують для Java і C#. Таблиці і драйвер записуються в стандартний висновок.

jay [-ctv] [-b file-prefix] grammar skeleton|<skeleton

java -jar jay.jar [-ctv] [-b file-prefix] grammar skeleton|<skeleton

Доступні наступні параметри:

— B file-prefix змінює префікс, що додається до імен вторинних вихідних файлів, на рядок, що позначається file_prefix. Префікс за замовчуванням є символ y.

-c організовує директиви #line препроцесора C, які будуть включені в вивід. Це корисно тільки для C#.

— t організовує налагоджувальну інформацію для включення у вихідні дані. Фактична інформація контролюється файлами набору; оскільки вона поширюється, вона залежить від додаткових пакунків середовища виконання. Для C# це частина завантаження вихідного коду, для Java див.yydebug.

— v змушує опис згенерованого парсера для людського сприйняття записуватись у файл file_prefix.output.

Якщо задана одна з змінних оточення TMPDIR, TMP або TEMP, то в якості імені директорії, в якій створюються тимчасові файли, буде використовуватися рядок змінної середовища.

Вхідний формат

Формат введення і алгоритм LALR (1) не були змінені з yacc. Вам слід звернутися до обширної літератури по yacc, щоб отримати докладні відомості про написання і налагодження граматики, виправлення помилок, стратегій дій і т. д.

Єдиними відмінностями є стек значень, вбудовування створеного синтаксичного аналізатора в клас і інтерфейс до сканера. Всі вони можуть бути змінені шляхом зміни файлів набору. Інша частина цього розділу заснована на файлах набору, що поширюються з jay.

Директива %union була видалена. jay використовує Object (або System.Object з C#) для стека значень. Отже, ім’я в позначенні тегу <name> відноситься до класу або інтерфейсу.

Це має значення для привидів, які генерує jay: ні C#, ні Java не дозволяють присвоюватись наведеним змінним. Таким чином, позначення $ $ відноситься до об’єкта без приведення, оскільки $ $ зазвичай присвоюється. Якщо $$ використовується для інших цілей, він зазвичай повинен буде використовувати явний тип $<name>$, який перетворюється на приведення до name.

Аналогічно, позначення $n присвоюється рідко. Тому, jay створює роль, якщо нотація $<>N використовується для запобігання закидання.

jay не поширює ролі на об’єкт. Ці приведення зазвичай не потрібні, і ця стратегія дозволяє уникнути численних попереджувальних повідомлень, але це може викликати сюрприз у ситуації перевантаження.

jay поняття не має про наслідування. Це може призвести до появи необґрунтованих попереджувальних повідомлень зі скаргами на сумнівні призначення. Було визнано, що ці повідомлення в цілому корисні, навіть якщо деякі з них є помилковими.

Дженерік

Таблиці та скелетні файли jay не використовують параметризовані типи. jay.yydebug кодується без параметризованих типів, однак вихідники містять код з дженериками в рядках, які на даний момент закоментовані.

Позначення <tag> може містити вкладені кутові дужки і всередині них символи [] порожні ? , на додаток до звичайних буквено-цифрових . $ _ . Однак посилання на стек значень $ n наводяться з використанням відповідного тега, і приведення до параметризованого типу викличе неперевірене попередження в Java.

 

Клас парсера може бути позначений як @SuppressWarnings («неперевірений»); однак, в той час як це може бути варіантом для Java 5, і це ймовірно, нерозумно.

Файли набору

Двійкове або вихідне завантаження включає два скелетних файли для Java і один для C#. Файл набору управляє форматом створюваних таблиць і включає в себе фактичний алгоритм парсера, який інтерпретує таблиці. Алгоритми однакові у всіх розподілених файлах, але skeleton.tables ініціалізують різні таблиці, читаючи файл ресурсу під час виконання; це уникає межі, яку система Java накладає на розмір сегмента коду для класу.

Щоб створити файл ресурсів, створіть синтаксичний аналізатор за допомогою skeleton.tables. З вихідного коду парсера витягніть рядки, що починаються з / / yy, і видаліть саме цей префікс. Отриманий файл повинен знаходитися в тому ж каталозі, що й файл класу аналізатора, і повинен використовувати ім’я класу аналізатора і суфікс .tables.

Не слід змінювати файли набору, але про всяк випадок вони широко коментуються. Файли однорядкові. Символ у першому стовпці визначає, що відбувається з рядком: # позначає коментар, і рядок ігнорується. . зазначає рядок, який копіюється без початкового періоду.

t позначає рядок, який має відношення до трасування. Зазвичай він копіюється з / / T; якщо встановлено параметр -t, рядок копіюється без провідного t.

Нарешті, рядок з початковим пробілом містить команду, яка приводить до висновку деякої табличної інформації і яка може використовувати іншу частину рядка в якості параметра.

Actions видають код з дій як тіло switch.

Epilog видає текст, що слідує за другим %%.

local виділяє текст В % { % } після першого %%.

prolog видає текст в межах % { % } до першого%%.

tokens prefix створює кожне значення маркера в якості ініціалізованого ідентифікатора, а решту рядка-в якості префікса.

version comment створює коментар / / з рештою рядка.

yyCheck prefix   виділіть тіло відповідної таблиці з залишком рядка в якості префікса для кожного вихідного рядка.

yyDgoto prefix

yyGindex prefix

yyLen prefix

yyLhs prefix

yyRindex prefix

yySindex prefix

yyTable prefix

yyFinal prefix видає значення як ініціалізатор із залишком рядка в якості префікса.

yyNames prefix видає таблицю у вигляді списку слів, а залишок рядка – у вигляді префікса для кожного вихідної рядка.

yyNames-strings видають таблицю як список рядкових ініціалізаторів.

yyRule prefix видає таблицю у вигляді списку рядків, а залишок рядка — у вигляді префікса для кожної вихідної лінії.

yyRule-strings видають таблицю як список рядкових ініціалізаторів.

Кожна таблиця передує коментарю з інформацією про вимірювання.

Управління класами

Дизайн файлу скелета повинен враховувати дві проблеми: як вбудувати парсер в клас і як взаємодіяти зі сканером.

Розподілені файли набору очікують, що користувач надасть prolog у % { % }, що містить заголовок класу, і epilog після другого%%, який закриває цей клас. jay не знає ім’я класу аналізатора.

Інтерфейс до сканера yyInput генерується як член кожного класу парсера; це може бути або не бути хорошим вибором. Існує три методи: advance немає аргументів, і повинне повертатися логічне значення, яке вказує, що сканер успішно вибрав наступний вхідний символ; token не має аргументів і повинен повертати поточний вхідний символ як цілочисельне значення, на яке очікує парсер; value не має аргументів і повертає значення об’єкта для розміщення на статусі/значення стека для вводу символу. Трасування очікує, що маркер і значення будуть постійними функціями між кожним викликом для просування.

Явні значення токенів генеруються як константи в класі парсера. Одиночні символи представляють себе; однак для тих, які Jay сприймає в ASCII, а не в наборі символів Unicode. Можливо, було б краще визначити константи в інтерфейсі сканера, але очікується, що сканер реалізований як внутрішній клас аналізатора. pj підтримує це уявлення, навіть якщо сканер явно створений з використанням JLex.

Завантажити

архів з виконуваним файлом і наборами для MacOS X, 52 КБ

архів з файлами класу і наборами для будь-якого Java ВМ, 520 КБ, завдяки Аллиеіа і Megacz’ nestedvm

вихідні файли, 224 КБ

Версія:

1.1.1, червень 2006 року.

Автор:

Аксель Т. Шрейнер.

NetMaker

Оригинал статьи доступен по ссылке.

NetMaker – это бесплатный пакет для построения нейронных сетей. Он был разработан в первую очередь для поддержки классификации взаимодействия частиц в экспериментах по физике высоких энергий в CERN — SMC, COMPASS и ICARUS, эксперименте с нейтрино в LNGS. Это также был мой тестовый стенд для экспериментов с различными алгоритмами (известными и собственными идеями). Теперь он превратился в сетевой дизайнер с множеством возможных приложений. Идея состоит в том, чтобы Сети, предварительная / постобработка и наборы данных разделились на равномерно работающие, независимые от задач блоки, которые могут образовывать более крупные системы.

Разработка проекта была приостановлена на очень долгое время. Теперь тема нейросети снова становится горячей. Мы довольны производительностью движка NetMaker, но он очень нуждается в модернизации интерфейса! Он появится — как часть нового, простого языка программирования POOL.

особенности нейронного движка

научные статьи

Скачать текущую версию: v0.9.5.2

Теперь доступны функции Bayesian Framework, в результате нашей самой последней работы на параметризациях форм-фактора EM.

история изменений

предыдущие версии:

версия v0.9.4.3

версия v0.9.3.4

версия v0.9.2.8

версия v0.9.2.0

Корневой C++ код для запуска обученной сети в программах.

Страница переведена на сербско-хорватский язык веб-гиками.

  • четкая визуализация исходных данных и сетевых результатов:
  • специализированные участки-чистота-эффективность, отбраковка фона,
  • гистограммы — с μ и σ распределения,
  • точечные диаграммы-с коэффициентом линейной корреляции Rxy,
  • параметры обучения против итерации,
  • обновленные графики в режиме реального времени;
  • написано на C#;
  • расчет оптимизирован на Си/АСМ (с SSE2/SSE3/SSE4.1 курсе).

Bash — проект Bourne Again SHel

Автор оригіналу статті — Chet Ramey.

Вступ

Bash — це проект Bourne Again SHell, повна реалізація детального каркасу IEEE POSIX та Open Group з інтерактивним редагуванням командного рядка, контроль роботи на структурах, що підтримують його, функції csh, такі як заміна історії та розширення підтяжки, а також заміщення інших функцій. Ось короткий список деяких функцій, доступних у Bash.

Щоб отримати додаткові відомості про функції Bash, нові для цього каркасу, див. довідку. Існує також велика man сторінка, яка має стиль Unix. Сторінка man є остаточним описом функцій каркасу.

Bash — це вільне програмне забезпечення, яке розповсюджується за умовами GNU General Public License, версія 3.

На найбльш поширені питання ви можете знайти відповідь у секції FAQ, хоча він більше не підтримується.

Поточний стан

Поточна версія bash — bash-4.4. (Підпис GPG).

Завантажуваний файл tar з поточною версією з усіма офіційними патчами доступний у репозиторії GNU git.

Знімок поточних джерел розробки (загалом оновлюється щотижня) також доступний у гілці GNU git bash devel.

Для отримання додаткової інформації див. Файл README.

Файл НОВИНИ детально перераховує нові функції в bash-4.4.

Наявність вихідного коду

Поточна версія bash доступна з ftp.cwru.edu і з майстра GNU ftp-сайту та його багатьох віддзеркалень. Цей файл розповсюдження містить форматовані копії документацій.

Ці файли підписані з моїм ключем GPG.

Доступні декілька файлів для FTP з ftp.cwru.edu.

Будь-які патчі для поточної версії доступні з CWRU та ftp.gnu.org.

Завантажуваний файл tar з поточною версією з усіма офіційними патчами доступний у сховищі GNU git, а знімок поточних джерел розробки (загалом оновлюється щотижня) також доступний у гілці розробки GNU bash git devel.

Попередні версії Bash доступні на ftp://ftp.gnu.org/gnu/bash.

Розподіл

Bash — це стандартний каркас в системах GNU / Linux, більшість з яких використовують bash-4.3. Bash-4.3 включено до складу колекції портів FreeBSD, колекції пакетів OpenBSD та NetBSD.

Проект OpenPKG робить джерело RPM башу-4.3 доступним для різних систем Unix і Linux як основну частину поточного випуску.

Поточні версії Mac OS X (від Jaguar / Mac OS X 10.2) постачаються з баш-3.2 як / bin / sh. Існують також попередньо скомпільовані пакети OS X пакетів bash-4.3, доступні з багатьох веб-сайтів, хоча вихідні пакунки, як правило, є більш сучасними. Баш для Дарвіна (база для MacOS X) доступний у MacPorts, Homebrew або Fink.

Користувачі Solaris 2.x та Solaris 7/8/10/11 можуть отримати попередньо скомпільовану версію bash-4.3 з сайту Unixpackages (підписку) або з OpenCSW. Oracle кораблі bash-3.2 як підтримувану частину Solaris 10 і bash-4.1 у складі Solaris 11. Версія Solaris / Illumos, що поширюється як OpenIndiana, включає bash-4.3 станом на вересень 2016 року.

Користувачі AIX можуть отримувати попередньо скомпільовані версії випусків bash-4.3 і старі для різних версій AIX від Groupe Bull, а також джерел та бінарних файлів bash-4.3 для різних випусків AIX від perzl.org. IBM робить Bash-4.2 та Bash-4.3 доступними для AIX 5L, AIX 6.1 та AIX 7.1 у складі пакета інструментів AIX для [GNU /] Linux-додатків. Вони використовують формат RPM; ви також можете отримати RPM для AIX.

Користувачі HP-UX можуть отримувати binaries і вихідний код bash-4.3 з портативного програмного забезпечення та архівного центру для HP-UX. (Поточна версія станом на цю дату — bash-4.3.46).

Він навіть доступний на Minix. Якщо ви використовуєте Windows, рекомендую використовувати Cygwin, який в даний час поставляє bash-4.3.42 і bash-4.3.46 або MinGW, який в даний час має bash-3.1.23 як частину базової системи MSYS.

Microsoft пропонує «Баш на Ubuntu в Windows» як інстальований додаток для Windows 10. Це, в основному, окрема пакетна версія Ubuntu, яка працює як додаток для Windows 10, і пропонує баш-4.3 в цьому середовищі.

Інші ресурси

Список найбільш поширених питань з відповідями, хоча цей документ більше не підтримується.

Список дискусій bug-bash@gnu.org часто містить інформацію про нові порти Bash, обговорення нових функцій або поведінки, які люди хотіли б змінити. Список розсилки — це повідомлення про помилки в bash і виправлення. Цей список розсилки також доступний як група новин Usenet, gnu.bash.bug.

Архіви помилок-башів, що містяться в грудні 1999 року, доступні зі списків .gnu.org. Групи Google мають архів gnu.bash.bug.

Загальні питання про програму bash та каркас слід надсилати на пошту розсилки help-bash@gnu.org. Його архіви також доступні на lists.gnu.org.

Деякі файли з поточного дистрибутива також можуть бути корисними.

  • README: файл, що описує Bash
  • НОВИНИ: файл точно перераховує помітні зміни між поточною та попередніми версіями
  • CHANGES: повна історія змін bash
  • ВСТАНОВИТИ: інструкції з монтажу
  • ПРИМІТКИ: специфікація конфігурації платформи та примітки щодо роботи
  • COMPAT: проблеми сумісності між bash4 та попередніми версіями
  • POSIX: що змінюється, коли bash знаходиться в режимі posix?

Ось пара документів, які написав автор на bashі.

  • Робота, яку я представив на ROSE 94 в Бухаресті, Румунія (PS).
  • Ще одна стаття від Usenix; login (PS).
  • Глава в архітектурі програм з відкритим кодом.

Повідомлення про помилки

Звіти про помилки для bash слід надіслати на bug-bash@gnu.org за допомогою програми bashbug, яка будується та встановлюється одночасно з башем.

Список дискусій bug-bash@gnu.org часто містить інформацію про нові порти Bash, обговорення нових функцій або поведінки, які люди хотіли б. Цей список розсилки також доступний як група новин usenet gnu.bash.bug. Ви можете підписатися і отримати список на lists.gnu.org.

Коли ви надсилаєте звіт про помилку, будь ласка, використовуйте програму bashbug, побудовану в той же час як bash. Якщо bash не вдалося побудувати, спробуйте побудувати bashbug безпосередньо з make bashbug. Якщо ви не можете створювати bashbug, будь-ласка, відправте пошту bug-bash@gnu.org з наступною інформацією:

  • Номер версії та статус випуску Bash (наприклад, 2.05-release)
  • Машина та операційна система, на якій вона працює (ви можете запускати bashversion -l з каталогу збірки bash або переглядати файл «.made» у цьому каталозі для цієї інформації)
  • Перелік прапорів комбінації або вмісту «config.h», якщо це необхідно
  • Опис помилки
  • Рецепт безпечного відновлення помилок
  • Виправлення помилки, якщо у вас є!

Програма bashbug включає більшу частину цього автоматично.

Якщо ви хочете зв’язатися безпосередньо з відповідальним Bash, відправте своє повідомлення на пошту bash-maintainers@gnu.org.

Від автора

Я відповідаю за Bash, і можна зв’язатись за допомогою ціє адреси bash-maintainers@gnu.org. Будь-ласка, надішліть доповнення та виправлення щодо цієї сторінки до chet.ramey@case.edu.

Список для написання якісних програм

Цей список має допомогти вам писати якісні програми.

Рафаель Фінкел, 17.08.2005

  • Ідентифікатори: переконайтеся, що всі ваші ідентифікатори є значимими.
    1. Однобуквенні ідентифікатори майже завжди позбавленні сенсу.

      Читать далее

Програмування

Історія

Програмування – складний процес. Метою програмного середовища є надання інструментів, які допомагають програмісту спростити завдання. Ми палкі прихильники інструментів програмування та тривалий час розробляємо такі інструменти. Будучи студентом, я працював над мовою програмування Dartmouth Basic. Одне з ключових нововведень полягало в тому, щоб додати до середовища налагоджувач мови оригіналу.

Наше справжнє дослідження в середовищах програмування розпочалося з появою робочих станцій (Apollos, Suns, Percs, …). Ми (поряд з кількома іншими групами) відчували, що треба вміти користуватися додатковою обчислювальною потужністю та графічним дисплеєм, щоб спростити та покращити досвід програмування.

Читать далее

EMD

Вступ

Це реалізація віддаленості від Землі, як описано в [1]. EMD обчислює відстань між двома розподілами, які представлені сигнатурами. Сигнатури — це набори зважених функцій, які фіксують розподіли. Функції можуть бути будь-якого типу і в будь-якій кількості вимірів, і визначаються користувачем.

EMD визначається як мінімальний об’єм роботи, що необхідний для зміни однієї сигнатури в іншу. Поняття «робота» базується на встановленій самим користувачем відстані, що являє собою дистанцію між двома функціями. Розмір двох сигнатур може бути різним. Також сума ваги однієї сигнатури може відрізнятися від сума ваги іншої (частковий збіг). Через це EMD нормалізується меншою сумою.

Читать далее

Тести для самоперевірки

Чому саме тести?

Більшість педагогів погоджуються з тим, що люди зберігають інформацію краще, коли вони використовують її для чогось. Тому я вважаю, що невеликі тести для самоперевірки студентів на основі їхнього поточного читання чи іншого навчального матеріалу, є дуже корисними. Більшість студентів погоджуються, що виконання тесту відразу після прочитання чи прослуховування лекції допомагає їм запам’ятовувати цей матеріал.

Читать далее

BCPL

BCPL – це проста нетипізована мова програмування, яка була розроблена Мартіном Річардсоном у 1966 році і вперше застосована навесні 1967 в Массачусетському технологічному університеті.

Автоматична інтерпретація BCPL надається безкоштовно для приватних та академічних цілей. Якщо ви бажаєте встановити її на свій комп’ютер, ознайомтесь із файлом дистрибутива README і отримайте копію bcpl.tgz. або bcpl.zip. Розміри і дати створення цих файлів ви можете знайти у файлі FILES.

Читать далее

XFOIL

XFOIL — це інтерактивна програма для створення та аналізу дозвукових ізольованих аеродинамічних поверхонь.

Вона складається з набору підпрограм, керованих меню і які виконують різноманітні корисні функції, а саме:

• В’язкий (або нев’язкий) аналіз існуючої аеродинамічної поверхні, який дозволяє:

Страница 1 из 2