Articolul precedent |
Articolul urmator |
688 27 |
Ultima descărcare din IBN: 2024-06-12 22:01 |
Căutarea după subiecte similare conform CZU |
004.43:512.5 (1) |
Programe. Software (302) |
Algebră (413) |
SM ISO690:2012 НЕГАЛЮК, Максим. Теория категорий в JAVASCRIPT. In: Sesiune națională cu participare internațională de comunicări științifice studențești, Ed. 24, 15 februarie 2020, Chișinău. Chișinău, Republica Moldova: Centrul Editorial-Poligrafic al USM, 2020, Ediția 24, Vol.1, pp. 66-68. ISBN 978-9975-142-89-2. |
EXPORT metadate: Google Scholar Crossref CERIF DataCite Dublin Core |
Sesiune națională cu participare internațională de comunicări științifice studențești Ediția 24, Vol.1, 2020 |
||||||
Sesiunea "Sesiune naţională de comunicări ştiinţifice studenţeşti" 24, Chișinău, Moldova, 15 februarie 2020 | ||||||
|
||||||
CZU: 004.43:512.5 | ||||||
Pag. 66-68 | ||||||
|
||||||
Descarcă PDF | ||||||
Rezumat | ||||||
Изменения в железе и растущая сложность программного обеспечения заставляют нас переосмысливать основы программирования.Абстракция – это одна из основных техник в ИТ. Любой язык программирования или моделирования, любая парадигма программирования (процедурная, функциональная, ООП, …) дают ответ на вопрос, как и от чего нужно абстрагироваться. Причём, адепты каждого подхода предлагают какой-то свой вариант абстракции.С помощью теории категорий можно единообразно описывать очень разные вещи.Теория категорий – раздел математики, изучающий свойства отношений между математическими объектами, не зависящие от внутренней структуры объектов.Категория – это очень простая концепция.Категория состоит из объектов и стрелок, которые направлены между ними. Поэтому категории так легко представить графически. Связи между объектами – есть морфизмы.Объект можно нарисовать в виде круга или точки, а стрелки – просто проставленные стрелки между ними. Но суть категории – композиция.Свойства композиции:1. Композиция ассоциативна.2. Тождественный морфизм действует тривиально.Основные типы категорий:· Set – категория множеств и отображений между ними.· Grp – категория групп и гомоморфизмов.· Ring – категория ассоциативных колец и гомоморфизмов.Для того, чтобы сконструировать категорию чего-то, необходимо помнить:· каждый объект A имеет тождественный морфизм id_A: A -> A;· можно составлять морфизмы f, g, если целевой объект f соответствует исходному объекту g;· композиция ассоциативна;· композиция с идентичностью возвращает тот же морфизм.Следующая фабрика абстрактно будет реализовывать категории на JS. function SetCategory() {} SetCategory.prototype.object = function (elements) { return new Set(elements);}; SetCategory.prototype.morphism = function (A, B, mapping) { return new TotalFunction(A, B, mapping);}; SetCategory.prototype.id = function (A) { return this.morphism(A, A).initId();}; SetCategory.prototype.compose = function (g, f) { return g.compose(f);};Данная фабрика позволяет создавать:· объекты (которые являются множествами);· морфизмы (которые являются функциями, отображающими элементы некоторого множества A на элементы некоторого множества B);· тождественные морфизмы (которые являются тождественными отображениями некоторого множества A на себя);· композиции двух морфизмов.Функтор – отображение между категориями.В чём заключается это обобщение теории категорий? В том, что в теории категорий мы полностью абстрагируемся от внутреннего устройства объектов и морфизмов. Вместо того, чтобы определять эти виды морфизмов через кружочки и стрелочки, они определены через соотношения с другими морфизмами.Использование теории категорий помогает правильно организовывать код, правильно называть классы и функции. Теория категорий позволяет писать универсальные алгоритмы. |
||||||
|
Cerif XML Export
<?xml version='1.0' encoding='utf-8'?> <CERIF xmlns='urn:xmlns:org:eurocris:cerif-1.5-1' xsi:schemaLocation='urn:xmlns:org:eurocris:cerif-1.5-1 http://www.eurocris.org/Uploads/Web%20pages/CERIF-1.5/CERIF_1.5_1.xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' release='1.5' date='2012-10-07' sourceDatabase='Output Profile'> <cfResPubl> <cfResPublId>ibn-ResPubl-102920</cfResPublId> <cfResPublDate>2020</cfResPublDate> <cfVol>Ediția 24, Vol.1</cfVol> <cfStartPage>66</cfStartPage> <cfISBN>978-9975-142-89-2</cfISBN> <cfURI>https://ibn.idsi.md/ro/vizualizare_articol/102920</cfURI> <cfTitle cfLangCode='RU' cfTrans='o'>Теория категорий в JAVASCRIPT</cfTitle> <cfAbstr cfLangCode='RU' cfTrans='o'><p>Изменения в железе и растущая сложность программного обес­пе­чения заставляют нас переосмысливать основы прог­рам­ми­ро­ва­ния.</p><p>Абстракция – это одна из основных техник в ИТ. Любой язык прог­раммирования или моделирования, любая парадигма прог­рам­­мирования (процедурная, функциональная, ООП, …) дают ответ на вопрос, как и от чего нужно абстрагироваться. Причём, адеп­ты каждого подхода предлагают какой-то свой вариант абстрак­ции.</p><p>С помощью теории категорий можно единообразно описывать очень разные вещи.</p><p><strong>Теория категорий</strong> – раздел математики, изучающий свойства отношений между математическими объектами, не зависящие от внутренней структуры объектов.</p><p>Категория – это очень простая концепция.</p><p>Категория состоит из объектов и стрелок, которые направлены между ними. Поэтому категории так легко представить гра­фи­чески. Связи между объектами – есть морфизмы.</p><p>Объект можно нарисовать в виде круга или точки, а стрелки – просто проставленные стрелки между ними. Но суть категории – композиция.</p><p>Свойства композиции:</p><p>1. Композиция ассоциативна.</p><p>2. Тождественный морфизм действует тривиально.</p><p>Основные типы категорий:</p><p>· Set – категория множеств и отображений между ними.</p><p>· Grp – категория групп и гомоморфизмов.</p><p>· Ring – категория ассоциативных колец и гомоморфизмов.</p><p>Для того, чтобы сконструировать категорию чего-то, необ­ходимо помнить:</p><p>· каждый объект A имеет тождественный морфизм id_A: A -> A;</p><p>· можно составлять морфизмы f, g, если целевой объект f соответствует исходному объекту g;</p><p>· композиция ассоциативна;</p><p>· композиция с идентичностью возвращает тот же морфизм.</p><p>Следующая фабрика абстрактно будет реализовывать кате­го­рии на JS.</p><p> </p><p>function SetCategory() {</p><p>}</p><p> </p><p>SetCategory.prototype.object = function (elements) {</p><p> return new Set(elements);</p><p>};</p><p> </p><p>SetCategory.prototype.morphism = function (A, B, mapping) {</p><p> return new TotalFunction(A, B, mapping);</p><p>};</p><p> </p><p>SetCategory.prototype.id = function (A) {</p><p> return this.morphism(A, A).initId();</p><p>};</p><p> </p><p>SetCategory.prototype.compose = function (g, f) {</p><p> return g.compose(f);</p><p>};</p><p>Данная фабрика позволяет создавать:</p><p>· объекты (которые являются множествами);</p><p>· морфизмы (которые являются функциями, отображающими элементы некоторого множества A на элементы некоторого множества B);</p><p>· тождественные морфизмы (которые являются тождествен­ными отображениями некоторого множества A на себя);</p><p>· композиции двух морфизмов.</p><p>Функтор – отображение между категориями.</p><p>В чём заключается это обобщение теории категорий? В том, что в теории категорий мы полностью абстрагируемся от вну­т­рен­него устройства объектов и морфизмов. Вместо того, чтобы опре­делять эти виды морфизмов через кружочки и стрелочки, они определены через соотношения с другими морфизмами.</p><p>Использование теории категорий помогает правильно орга­ни­зо­вывать код, правильно называть классы и функции. Теория ка­те­горий позволяет писать универсальные алгоритмы.</p></cfAbstr> <cfResPubl_Class> <cfClassId>eda2d9e9-34c5-11e1-b86c-0800200c9a66</cfClassId> <cfClassSchemeId>759af938-34ae-11e1-b86c-0800200c9a66</cfClassSchemeId> <cfStartDate>2020T24:00:00</cfStartDate> </cfResPubl_Class> <cfResPubl_Class> <cfClassId>e601872f-4b7e-4d88-929f-7df027b226c9</cfClassId> <cfClassSchemeId>40e90e2f-446d-460a-98e5-5dce57550c48</cfClassSchemeId> <cfStartDate>2020T24:00:00</cfStartDate> </cfResPubl_Class> <cfPers_ResPubl> <cfPersId>ibn-person-76149</cfPersId> <cfClassId>49815870-1cfe-11e1-8bc2-0800200c9a66</cfClassId> <cfClassSchemeId>b7135ad0-1d00-11e1-8bc2-0800200c9a66</cfClassSchemeId> <cfStartDate>2020T24:00:00</cfStartDate> </cfPers_ResPubl> </cfResPubl> <cfPers> <cfPersId>ibn-Pers-76149</cfPersId> <cfPersName_Pers> <cfPersNameId>ibn-PersName-76149-1</cfPersNameId> <cfClassId>55f90543-d631-42eb-8d47-d8d9266cbb26</cfClassId> <cfClassSchemeId>7375609d-cfa6-45ce-a803-75de69abe21f</cfClassSchemeId> <cfStartDate>2020T24:00:00</cfStartDate> <cfFamilyNames>Негалюк</cfFamilyNames> <cfFirstNames>Максим</cfFirstNames> </cfPersName_Pers> </cfPers> </CERIF>