Предметно-орієнтована мова програмування

Предметно-орієнтована мова програмування (англ. Domain-specific language, DSL) — мова програмування, призначена для вирішення задач конкретної предметної галузі, яка дає особливе уявлення про проблему або специфічні методи її вирішення. Протилежністю предметно-орієнтованих мов є мови програмування загального призначення. Комп'ютерні мови спеціального призначення завжди існували в комп'ютерну епоху, але термін «предметно-орієнтована мова програмування», став більш популярним у зв'язку з розвитком моделювання у певних предметних галузях. Простіші предметно-орієнтовані мови програмування, особливо ті, що використовуються однією програмою, іноді неофіційно називають міні-мовами.

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

Розробка та використання відповідних предметно-орієнтованих мов програмування є ключовою частиною інженерії деяких галузей, де використання таких мов, придатних для відповідного типу задач може бути найоптимальнішим розв'язком проблеми. Мовно-орієнтоване програмування розглядає створення мов спеціального призначення для вираження проблем як стандартну частину процесу вирішення проблеми. Створення мови, спеціально для певного завдання (з програмним забезпеченням для її підтримки), замість повторного використання існуючої мови, може бути доцільним, якщо мова дозволяє чіткіше виразити певний тип проблеми чи рішення, ніж це дозволяє існуюча мова, і тип проблеми, про яку йдеться, з'являється досить часто. З прагматичної точки зору, предметно-орієнтована мова програмування може бути спеціалізованою для певної проблемної області, для конкретного способу подання проблеми, для конкретної техніки вирішення задачі або інших аспектів предметної області.

Загальний огляд

Предметно-орієнтована мова створена спеціально для вирішення проблем у певній сфері та не призначена для вирішення проблем поза нею (хоча це може бути технічно можливо). А от, мови загального призначення створюються для вирішення проблем у багатьох областях.

Межа між мовами загального призначення та мовами, специфічними для конкретних завдань, не завжди чітка, оскільки мова може мати спеціалізовані функції для певної задачі, але може бути застосована ширше, або навпаки, в принципі, може мати широке застосування, але на практиці використовується переважно для конкретних задач. Наприклад, спочатку Perl був розроблений як мова обробки тексту, але пізніше переважно використовувалася як мова програмування загального призначення. Навпаки, PostScript — це повна мова Тюрінга[en], і в принципі може використовуватися для будь-якого завдання, але на практиці вузько використовується як мова опису сторінки.

Предметно-орієнтована мова програмування є десь між маленькими мовами програмування та скриптовими мовами програмування, і часто використовується подібно до бібліотек мов програмування. Межі між цими поняттями досить розмиті, так само, як межі між скриптовими мовами та мовами загального призначення.

Деякі предметно-орієнтовані мови програмування з часом розширюються і включають повнофункціональні інструменти мови програмування, що ще більше ускладнює питання про те, чи є мова предметно-орієнтованою чи ні. Хорошим прикладом є функціональна мова XSLT, спеціально розроблена для перетворення одного графіку XML в інший, який був розширений з моменту його створення, щоб дозволити (особливо у версії 2.0) різні форми взаємодії з файловою системою, маніпулювання рядками та датами, введення даних.

Підводячи підсумок, можна навести таку аналогію: дуже маленька мова схожа на ніж, яким можна користуватися тисячами різних способів — від вирубки їжі до вирубки дерев. Предметно-орієнтована мова, схожа на електричну дриль: це потужний інструмент із широким спектром використання, але з певним контекстом, а саме — пробиванням дірок у певному предметі. Мова загального призначення — це повний робочий стіл із різноманітними інструментами, призначеними для виконання різноманітних завдань. Предметно-орієнтовані мови програмування повинні використовуватися програмістами, тоді, коли дивлячись на своє поточне завдання, вони розуміють, що їм потрібна краща деталізація, і конкретна предметно-орієнтована мова програмування забезпечує саме цей потрібний стек технологій.

Прикладами предметно-орієнтованих мов є мови виразів і макросів в електронних таблицях, мова регулярних виразів, мова граматики Yacc генератора парсерів тощо.

Порівняно з мовами програмування загального призначення, DSL близька до описових мов, як-от HTML, XML. Вона має специфічні особливості порівняно з мовами загального призначення, а саме:

  • абстракції DSL забезпечують визначення концепцій і абстрактних понять у предметній області;
  • синтаксис мови DSL може надавати засоби природного опису понять домену і запобігати синтаксичній неузгодженості, що буває при використанні мови загального призначення;
  • перевірка опису в DSL вимагає статичних аналізаторів, що можуть знайти більше помилок, ніж аналізатори загального призначення, і дати повідомлення про них цією ж мовою, що є більш зрозумілим для фахівців у предметній області;
  • оптимізація коду за описом в DSL базується на знаннях, що не є доступними компілятору з мови загального призначення;
  • інструменти підтримки DSL потребують відповідного оточення, наприклад, середовища, редактора, контролера версій тощо[1].

Приклади

Приклади предметно-орієнтованих мов включають HTML для створення макету сайту, Logo для олівцеподібного малювання, мови опису апаратних засобів Verilog та VHDL, MATLAB та GNU Octave для виконання математичних розрахунків, Mathematica, Maple та Maxima для проведення аналітичних[2] та числових обчислень і побудови графіків, Specification and Description Language[en] для реактивних та розподільних систем, формул та макросів електронних таблиць, SQL для запитів до реляційних баз даних, YACC для створення синтаксичного аналізу, регулярних виразів для лексичного аналізу, Generic Eclipse Modeling System[en] для створення мов діаграм, Csound для синтезу звуку та музики, мови введення GraphViz та GrGen, програмне забезпечення пакетів, що використовуються для компонування та переписування графіків,  мова конфігурацій Hashicorp, яка використовується для Terraform[3] та інших інструментів Hashicorp[en] .

GameMaker Language

Скриптова мова GML, яка використовується ігровим рушієм GameMaker Studio[4] — це предметно-орієнтована мова програмування, яка орієнтована на програмістів початківців, для полегшення вивчення програмування. Хоча ця мова є сумішшю кількох мов, включаючи Delphi, C++ та BASIC, існує недолік структур, типів даних та інших функцій, які наявні у повноцінної мови програмування. Багато вбудованих функцій є «пісочницею»[5] для зручності перенесення. Мова в першу чергу допомагає будь-кому легко її засвоїти та розробити гру.

Мова розмітки ColdFusion

Скриптова мова ColdFusion — це ще один приклад предметно-орієнтованої мови для вебсайтів, які працюють на основі баз даних. Ця скриптова мова використовується для об'єднання таких мов та послуг, як Java, .NET, C++, SMS, електронна пошта, сервери електронної пошти, http, ftp, служби каталогів та файлові системи для використання на вебсайтах.

Мова розмітки ColdFusion (CFML) містить набір тегів, які можна використовувати на сторінках ColdFusion для взаємодії з джерелами даних, маніпулювання даними та відображення результатів. Синтаксис тегів CFML подібний до синтаксису елементів HTML.

Erlang OTP

Erlang Open Telecom Platform спочатку була розроблена для використання всередині Ericsson як предметно-орієнтована мова. Сама мова пропонує платформу бібліотек для створення кінцевих автоматів, загальних серверів та менеджерів подій, які швидко дозволяють інженерам розгортати програми або підтримувати бібліотеки, які, як було показано в галузевих тестах, перевершують інші мови, призначених для різних предметних областей, такі як C та C++. Зараз мова офіційно відкрита і її можна завантажити з їхнього вебсайту.

FilterMeister

FilterMeister[6] — це середовище програмування з мовою програмування, засноване на C, з конкретною метою створення плагінів фільтра обробки зображень, сумісних із Photoshop. FilterMeister працює як плагін Photoshop, і він може завантажувати та виконувати скрипти або компілювати та експортувати їх як незалежні плагіни. Хоча мова FilterMeister відтворює значну частину мови C, вона містить лише ті функції, які можна використовувати в контексті плагінів Photoshop, і додає ряд специфічних функцій, корисних лише у цій конкретній галузі.

Використання в програмній інженерії

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

Прикладом цього є Software Cost Reduction Toolkit[7]. Набір інструментів — це набір утиліт, включаючи редактор специфікацій для створення специфікації вимог, браузер діаграми для відображення змінних залежностей, перевірка узгодженості для виявлення відсутніх випадків у добре сформованих формулах у специфікаціях, перевірка моделі та автоматизований доказ теорем для перевірки властивості програми відповідно до специфікацій та генератор інваріантів, який автоматично будує інваріанти на основі конкретних вимог.

Новішою розробкою є мовно-орієнтоване програмування[en], інтегрована методологія інженерного програмного забезпечення, заснована переважно на створенні, оптимізації та використанні предметно-орієнтованих мов.

Метакомпілятори

Доповнення до мовно-орієнтованого програмування, як і до всіх інших форм предметно-орієнтованих мов, є клас засобів написання компіляторів, які називаються метакомпіляторами[en]. Метакомпілятор не тільки корисний для генерації синтаксичних аналізів та генераторів коду для предметно-орієнтованих мов, але сам метакомпілятор компілює предметно-орієнтовану метамову, спеціально розроблену для області метапрограмування.

Крім синтаксичного аналізу предметно-орієнтованих мов, метакомпілятори корисні для створення широкого спектру інструментів програмного забезпечення та аналізу. Методологія метакомпілятора часто зустрічається в системах трансформації програм.

Метакомпілятори, які зіграли значну роль як в інформатиці, так і в комп'ютерній промисловості, включають Meta-II[8] та його нащадка TreeMeta[9].

Unreal Engine до 4-ї версії та інші ігри

Unreal і Unreal Tournament представили мову під назвою UnrealScript. Це дозволило швидко розвивати модифікації порівняно з конкурентом Quake (який використовує двигун Id Tech 2). Двигун Id Tech використовував стандартний код C, це означає, що C потрібно вивчити та належним чином застосувати, тоді як UnrealScript був оптимізований для зручності використання та ефективності. Подібним чином, при розробці новітніх ігор з'явилися власні орієнтовані мови. Ще одним поширеним прикладом є Lua для створення скриптів.

Мови статистичного моделювання

Статистичне моделювання розробило предметно-орієнтовані мови, такі як R (реалізація мови S), Bugs[en], Jags[en] та Stan[en]. Ці мови забезпечують синтаксис для опису байєсової моделі та генерують метод її вирішення за допомогою моделювання.

Gherkin

Gherkin[en][10] — це мова, призначена для визначення тестових випадків для перевірки поведінки програмного забезпечення, не вказуючи, як ця поведінка реалізована. Він призначений для читання та використання людьми, які не є кваліфікованими програмістами, з використанням синтаксису природної мови та лінійно-орієнтованого дизайну. Потім тести, визначені за допомогою Gherkin, повинні бути реалізовані загальною мовою програмування.

Інші приклади

Інші яскраві приклади предметно-орієнтованих мов програмування:

Переваги та недоліки

Переваги предметно-орієнтованих мов програмування

  • Предметно-орієнтовані мови програмування дозволяють написати рішення на рівні абстракції проблемної області. Ідея полягає в тому, що самі експерти певної галузі можуть розуміти, перевіряти, змінювати та часто навіть розробляти програми на предметно-орієнтованих мовах, хоча не мають кваліфікації в програмуванні.
  • Предметно-орієнтовані мови програмування забезпечують перевірку безпеки мовних конструкцій, які використовуються. Поки мовні конструкції в безпеці, будь-яку частину коду, написану ними, можна вважати безпечною.
  • Предметно-орієнтовані мови можуть допомогти переносити розвиток бізнесу інформаційних систем від традиційних розробників програмного забезпечення до більшої групи експертів у певній галузі, які (незважаючи на те, що мають менше технічних знань) мають більш глибокі знання про дану галузь.
  • Предметно-орієнтовані мови програмування легше вивчати, враховуючи їх обмежену сферу застосування.

Недоліки предметно-орієнтованих мов програмування

  • Вартість вивчення нової мови порівняно з її обмеженим застосуванням.
  • Витрати на розробку, впровадження та підтримку конкретної мови, а також інструменти, необхідні для її розробки (IDE).
  • Пошук, встановлення та підтримка належного набору технологій з певної DSL.
  • Потенційна втрата ефективності процесора в порівнянні з програмним забезпеченням написаним вручну.
  • Поширення подібних нестандартних предметно-орієнтованих мов, наприклад, DSL, що використовується в одній страховій компанії, проти DSL, що використовується в іншій страховій компанії[12].
  • Нетехнічним експертам у певній галузі може бути важко самостійно писати або змінювати програми написані на DSL.
  • Програмістам, які не є експертами в певній галузі, в якій для написання програм використовується DSL, може бути важко самостійно писати або змінювати програми.
  • Підвищена складність інтеграції DSL з іншими компонентами ІТ-системи (порівняно з інтеграцією мов загального призначення).
  • Невелика кількість професіоналів, які знають конкретну предметно-орієнтовану мову програмування, робить оплату праці досить високою.
  • Важче знайти приклади коду.

Див. також

Примітки

  1. 5.1.6. Генерувальне (порождувальне) програмування. Архів оригіналу за 23 лютого 2014. Процитовано 6 лютого 2014.
  2. Аналітичні обчислення. StudFiles (рос.). Архів оригіналу за 9 листопада 2021. Процитовано 9 листопада 2021.
  3. Что такое Terraform и почему это круто | Блоги | Компьютерное Обозрение. ko.com.ua (рос.). Архів оригіналу за 16 жовтня 2021. Процитовано 16 жовтня 2021.
  4. GameMaker: Studio. docs.yoyogames.com. Архів оригіналу за 9 листопада 2021. Процитовано 9 листопада 2021.
  5. Огляд пісочниці | рішення (укр.). Процитовано 16 жовтня 2021.
  6. FilterMeister. members.chello.at. Архів оригіналу за 14 березня 2021. Процитовано 9 листопада 2021.
  7. Software Cost Reduction (SCR). ptolemy.berkeley.edu. Архів оригіналу за 16 жовтня 2021. Процитовано 16 жовтня 2021.
  8. МЕТА II • ru.knowledgr.com. ru.knowledgr.com. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
  9. About: TREE-META. dbpedia.org. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
  10. Преимущества использования языка Gherkin. Независимое тестирование программного обеспечения - a1qa (ru-RU) . Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
  11. Game Definition Language. games.stanford.edu. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
  12. Wayback Machine (PDF). web.archive.org. 24 липня 2011. Архів оригіналу (PDF) за 24 липня 2011. Процитовано 9 листопада 2021.

Read other articles:

Koordinat: 3°50′44″S 114°56′46″E / 3.845584°S 114.946019°E / -3.845584; 114.946019 Tanah Laut beralih ke halaman ini. Untuk perusahaan Indonesia, lihat Tanah Laut (perusahaan).Artikel ini bukan mengenai Tanah Lot. Kabupaten Tanah LautKabupatenTranskripsi bahasa daerah • Jawi Banjarتانه لاوتPanorama Pegunungan Meratus dari Bajuin LambangMotto: Tuntung pandang(Banjar) Kekal, abadi, dan langgengPetaTanah LautPetaTampilkan peta Kab...

 

Meczet w Bohonikach Masjid BohonikiAgamaAfiliasi agamaIslamRiteSunniStatusmasjid aktifLokasiLokasi Bohoniki, PolandiaKoordinat53°19′N 23°39′E / 53.317°N 23.650°E / 53.317; 23.650Koordinat: 53°19′N 23°39′E / 53.317°N 23.650°E / 53.317; 23.650ArsitekturRampungabad 19-20 Masjid Bohoniki adalah masjid kayu yang terletak di Bohoniki, Provinsi Podlaskie, Polandia.[1] Sejarah Masjid ini dibangun pada titik balik dari abad kesemb...

 

2061 - Un anno eccezionaleTitoli di testa del filmLingua originaleitaliano Paese di produzioneItalia Anno2007 Durata100 min Rapporto2,35:1 Generecommedia, fantascienza RegiaCarlo Vanzina SoggettoCarlo Vanzina, Enrico Vanzina SceneggiaturaCarlo Vanzina, Enrico Vanzina, Diego Abatantuono ProduttoreCarlo Vanzina, Enrico Vanzina Casa di produzioneRai Cinema, International Video 80 Distribuzione in italiano01 Distribution FotografiaClaudio Zamarion MontaggioRaimondo Crociani Effetti specialiTi...

This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: List of Episcopal bishops of the United States – news · newspapers · books · scholar · JSTOR (November 2019) (Learn how and when to remove this template message) Map of dioceses of the Episcopal Church, colored by province   Province I   Province II  ...

 

El Príncipe Baltasar Carlos cazador Año 1635Autor Diego VelázquezTécnica Óleo sobre lienzoEstilo BarrocoTamaño 191 cm × 103 cmLocalización Museo del Prado, Madrid, España EspañaPaís de origen España[editar datos en Wikidata] El retrato El Príncipe Baltasar Carlos cazador fue pintado por Velázquez en 1635 y se conserva en el Museo del Prado.[1]​ El tema de la caza El rey Felipe IV encargó a Velázquez una serie de cuadros con el tema de la caza, destinados t...

 

Jalan Majapahit adalah salah jalan utama di Jakarta. Nama jalan ini diambil dari nama salah satu kerajaan di Indonesia, Majapahit. Jalan sepanjang 550 meter ini melintang dari persimpangan Jalan Medan Merdeka Utara menuju persimpangan Harmoni. Jalan ini melintasi 2 kelurahan: Gambir, Gambir, Jakarta Pusat Petojo Selatan, Gambir, Jakarta Pusat Jalan ini merupakan salah satu kawasan pemberlakuan pembatasan lalu-lintas Ganjil-Genap (berlaku Senin-Jumat, Pukul 06:00-10:00 dan 16:00-21:00 WIB). ...

Houten letters uit een oudere Nederlandstalige scrabble-uitgave, met andere letterwaarden. Scrabble is een letterspel dat wereldwijd wordt verkocht in 30 talen. Het is een bordspel voor twee tot vier spelers of spelerteams waarbij met een gegeven aantal willekeurige letters woorden moeten worden gelegd op een speelbord. Blokjes met letters, die verschillende waarden zijn toegekend, worden willekeurig gepakt, waarbij toeval een rol speelt. Er moeten bestaande woorden mee worden gevormd. Het is...

 

Bay in Massachusetts, United StatesQuincy BayView looking east across Quincy Bay with Squantum on the leftQuincy BaySouthern part of Boston Harbor showing Quincy Bay and nearby featuresLocationMassachusetts, United StatesCoordinates42°16′55″N 70°59′10″W / 42.282°N 70.986°W / 42.282; -70.986TypeBay Quincy Bay is the largest of the three small bays of southern Boston Harbor,[1][2] part of Massachusetts Bay and forming much of the shoreline of ...

 

Dutch historian (born 1943) For the 15th/16th century Guelderian field marshal, see Maarten van Rossum. Prof. dr.Maarten van Rossemvan Rossem in 2013Born (1943-10-24) 24 October 1943 (age 80)Zeist, NetherlandsEducationdr., PhD[1]Alma materUtrecht UniversityOccupation(s)historian, writer, presenter, commentatorYears active1984–presentNotable workDe Verenigde Staten in de Twintigste Eeuw (1984)TelevisionPresenter Van Rossem in Amerika (2009) Maliebaan in Beweging (2010)...

GO-JEK Traveloka Liga 1Musim2017JuaraBhayangkara FCDegradasi Persegres Persiba Balikpapan Semen Padang FC Jumlah pertandingan306Jumlah gol884 (2,89 per pertandingan)Pemain terbaik Paulo Sérgio(Bhayangkara FC)Pencetak golterbanyak Sylvano Comvalius (37 gol)(Bali United F.C.)Pemain muda terbaik Rezaldi Hehanusa(Persija Jakarta)Kemenangan kandangterbesarSriwijaya 10-2 Gresik United (5 November 2017)Kemenangan tandangterbesarPersegres 0-5 Bhayangkara(26 Agustus 2017)Mitra Kukar 0–5 Persip...

 

Byzantine poet and historian (c. AD 530–582/594) For the mountain of Crete, see Mount Agathias. Agathias Scholasticus (Greek: Ἀγαθίας σχολαστικός; c. AD 530[1] – 582[1]/594) was a Greek poet and the principal historian of part of the reign of the Roman emperor Justinian I between 552 and 558. Biography Agathias was a native of Myrina (Mysia), an Aeolian city in western Asia Minor. His father was Memnonius. His mother was presumably P...

 

This article may contain an excessive number of citations. Please help remove low-quality or irrelevant citations. (June 2023) (Learn how and when to remove this template message) Brazilian Federal Senate web portal. e-Cidadania PortalLogoFederal Senate Portal for Citizen ParticipationGeneral informationCoutryBrazilCreationFebruary 2012Belongs toFederal SenateCityBrasíliaAccess channelsInternetwww.senado.leg.br/ecidadaniaFederal Senate Website The e-Cidadania Portal is a website platform cre...

Перший з'їзд відбувся в Москві за адресою: вул. Рождественка, 11. Тепер це приміщення Московського архітектурного інституту І з'їзд КП(б)У — з'їзд Комуністичної партії (більшовиків) України, що відбувся 5–12 липня 1918 року в Москві. На з'їзді було 65 делегатів з ухвальним г...

 

Any feature of a timepiece beyond the display of hours, minutes and seconds Three complications on a Gallet MultiChron Navigator (1943): a crown-controlled synchronizable second hand, a direction-finding 24-hour hand, and a 45-minute recording chronograph In horology, a complication is any feature of a timepiece beyond the display of hours, minutes and seconds. A timepiece indicating only hours, minutes and seconds is known as a simple movement. Common complications include date or day-of-the...

 

Bosnian footballer (born 1943) Mirsad FazlagićPersonal informationDate of birth (1943-04-04) 4 April 1943 (age 80)Place of birth Čapljina, Independent State of CroatiaPosition(s) Full-backYouth career0000–1958 ČapljinaSenior career*Years Team Apps (Gls)1958–1960 Čapljina 33 (1)1960–1961 Željezničar 17 (0)1961–1972 Sarajevo 215 (4)Total 265 (5)International career1963–1968 Yugoslavia 19 (0)Managerial career1974–1975 Sarajevo1975–1983 Sarajevo (youth team)1983–1986 Sa...

2016 Indian filmGuruTheatrical release posterDirected bySanjay JadhavWritten byAashish PathreProduced by Sunil Lulla Deepak Pandurang Rane Starring Ankush Choudhary Urmila Kanitkar Murali Sharma CinematographyVijay SoniEdited by Apurva Motiwale Ashish Mhatre Music by Amitraj Pankaj Padghan Productioncompanies Eros International Bagpiper Soda Dreaming Twenty Four Seven Entertainment Distributed byEros InternationalRelease date 22 January 2016 (2016-01-22) Running time142 minutes...

 

Dra.Nurul ArifinM.Si.Anggota Dewan Perwakilan RakyatRepublik IndonesiaPetahanaMulai menjabat 1 Oktober 2019Daerah pemilihanJawa Barat IMasa jabatan1 Oktober 2009 – 30 September 2014Daerah pemilihanJawa Barat VII Informasi pribadiLahirNurul Qomaril Arifin18 Juli 1966 (umur 57)Bandung, Jawa Barat, IndonesiaPartai politikPartai Golongan Karya (2003–sekarang)Suami/istriMayong Suryo Laksono ​ ​(m. 1991)​Anak2Alma mater Universitas Indonesia ...

 

Finnish attempts to annex Petsamo in 1918 and 1920 This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article cites Wikipedia (or sources that take information from Wikipedia), in a circular manner. Please help improve this article by repairing any insufficient attribution if necessary and adding citations to reliable sources. Unsourced or poorly sourced material may be challenged and r...

American ASMR performer and cosplayer Gibi ASMRPersonal informationBornGina (1994-12-19) December 19, 1994 (age 28)NationalityAmericanOccupationYouTuberWebsitegibiofficial.comYouTube informationChannel Gibi ASMR Years active2016–presentGenresAutonomous sensory meridian responsecosplaySubscribers4.75 million[1]Total views1.96 billion[1] Creator Awards100,000 subscribers20161,000,000 subscribers2018 Last updated: July 25, 2023 Gibi ASMR (/ˈdʒiːbiː/; born Dec...

 

The DrummerArtistBarry FlanaganYear1996TypeBronzeDimensions240 cm × 170 cm × 91 cm (96 in × 68 in × 36 in)LocationWashington, D.C., United StatesCoordinates38°53′20″N 77°01′22″W / 38.8889°N 77.02265°W / 38.8889; -77.02265OwnerSmithsonian Institution The Drummer is a bronze sculpture, by Barry Flanagan.[1] It is at the Hirshhorn Museum and Sculpture Garden.[2] It was ma...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!