Аутоматско програмирање

У информатици, термин аутоматско програмирање[1] идентификује тип компјутерског програмирања у којем неки механизми генеришу компјутерски програм који омогућава људским програмерима да пишу код на вишем нивоу апстракције.

Нема сагластности у погледу прецизног дефинисања аутоматског програмирања, углавном зато што се њено значење мењало током времена. Дејвид Парнас је пратећи историју "аутоматског програмирања" у објављеним истраживањима уочио да је током 1940-их оно описивало аутоматизацију ручног процеса бушења папирних трака. Касније се односило на превод програмских језика високог нивоа, као што су Фортран и Алгол. У ствари, један од првих програма препознатљивих као компајлер звао се Аутокод. Парнас је закључио да је "аутоматско програмирање увек било еуфемизам за програмирање на језику вишег нивоа него што је доступно програмеру."[2]

Порекло

Милдред Косс, рани UNIVAC програмер, објашњава: "Писање машинског кода укључује неколико заморних корака - разчлањавање процеса у дискретна упутства, додељивање посебне меморијске локације за све команде и управљање I/O буферима. Након праћењљ тих корака за имплементацију математичких рутина, субрутина библиотека, и програма за сортирање, наш задатак је био да размотримо шире програмске процесе. Морали смо да разумемо како се тестирани код може поново употребити и како да користимо помоћ машине у програмирању. Док смо програмирали, анализирали смо процес и покушали да мислимо о начинима како да генерализујемо те кораке да бисмо их укључили у језике вишег нивоа. То је довело до развоја интерпретатора, асемблера, компајлера и програмских генератора дизајнираних да раде на или производе друге програме, односно до аутоматског програмирања."[3]

Генеративно програмирање

Генеративно програмирање је стил компјутерског програмирања који користи аутоматско генерисање изворног кода путем генеричких оквира, класа, прототипова, шаблона, аспеката, и генератора кода ради побољшања програмерске продуктивности.[4] То се често сродно са темама вишеструке употребе изворног кода, као што су компонентно оријентисано програмирање и инжењеринг производне породице.

Генерисање изворног кода

Генерисање изворног кода је процес стварања изворног кода на основу онтолошког модела као што је образац и постиже се са програмским алатом као што је шаблонски процесор или интегрисано развојно окружење (ИРО). Ови алати омогућавају стварање изворног кода на више различитих начина. Макро процесор, као што је С препроцесор, који замењује образац у изворном коду у складу са релативно једноставним правилима, једноставан је облик генератора изворног кода.

Имплементација

Неки IDE програми за Јаву и друге језике имају развијеније облике генерисања изворног кода, са којима се програмер може интерактивно одабрати и прилагодити "исечке" изворног кода. Програмски "чаробњаци", који омогућава програмеру да интерактивно дизајнира графичке корисничке интерфејсе док компајлер у позадини генерише одговарајући изворни код, су још један чест облик генерисања изворног кода. Ово се може упоредити са, на пример, језицима за обележавање корисничког интерфејса, који декларативно дефинишу корисничке интерфејсе.

Поред генерације кода помоћу чаробњака или шаблона, IDE такође може да генерише и манипулише кодом да би се аутоматизовала рефакторизација кода, за шта би иначе било неопходно да се изврше вишеструки ручни (грешкама подложни) кораци, чиме се повећава продуктивност програмера.[5] Примери таквих особина у IDE програмима су рефакторисање класе претраживача за  Smalltalk и они у Јава IDE-у попут Еклипсе.

Специјализована алтернатива подразумева стварање оптимизованог кода за математички дефинисане величине унутар компјутерског алгебарског система (КАС). Оптимизација компајлера се састоји од проналажења заједничких интермедијерс вектора величине који захтевају комплексност или операције, док сам дизајн компјутерског система алгебре захтева само  операције.[6][7][8] Ови објекти се могу користити као пред-оптимизер пре обраде компајлером. Ова опција се користи за руковање великим математички изразима у нпр. компјутерској (квантној) хемији.

Примери:

  • Acceleo је отворен изворни код генератора за Еклипсу који се користи за генерисање било ког текстуалног језика (Јава, PHP, Пајтон, итд) из EMF модела дефинисаних било којим метамоделима (UML, SysML, итд).
  • Actifsource је додатак за Еклипсу који омогућава графичко моделирање и на моделу засновано генерисање кода помоћу прилагођених шаблона.
  • Altova MapForce је оруђе за графичко мапирање, конверзију и интеграцију података, које има способност генерисања апликационог кода у Јави, C#, или C++ за извршење рекурентних трансформација.
  • CodeFluent Entities предузећа SoftFluent је графички алат интегрисан у Мајкрософтовом визуелном студију који генерише .NET изворни код, у C# или Вижуалном бејсику.
  • DMS Software Reengineering Toolkit је систем за дефинисање произвољних доменски специфичних језика и њихово превођење на друге језике.
  • HPRCARCHITECT (од MNB технологије, Inc) је алат за развој софтвер базиран на вештачкој интелигенцији са Whiteboard људским интерфејсом. Језички и технолошки агностичан развој овог оруђа је финансирало Америчко ратно ваздухопловство да реши проблем генерисања кода за системе који се извршавају на мешовитим процесорским технологијама.
  • Spring Roo је отворен изворни активни код генератор за Spring Framework базиран на Јава апликацијама. Он користи AspectJ mixins да обезбеди сепарацију концепата током циклуса процеса одржавања.
  • RISE је бесплатни пакет за моделовање информација за развој система који користи ERD или UML. Генерише код за базе података као што су MySQL, PostgreSQL и Microsoft SQL Server. Персистентна генерација кода за C# (.NET) и PHP укључујући SOAP и JSON стилове веб сервиса и AJAX прокси код.
  • Maple компјутерско алгебрски систем нуди оптимизаторе генератора кода за Фортран, МАТЛАБ, С и Јаву. Wolfram језик (Mathematica) и MuPAD имају сличне интерфејсе.
  • Екран скулптор,[9] Софткод,[10] интерфејс програмер,[11] и Џенифер[12] су примери пионирских програмских генератора који су се појавили од средине 1980—их до раних 1990—их. Они су развили и напредне технологије проширљивих, на шаблонима заснованиг генератора изворног кода на масовној тржишној скали.
  • GeneXus је унакрсно платформни, базиран на репрезентацији знања, развојни алат, који је углавном оријентисан на професионалну класу примена Веб апликација, паметне уређаје и Мајкрософт Виндоус платформу. Програмер описује апликацију на високом нивоу, углавном декларативним језиком, из кога се генерише изворни код за више окружења.
  • Bidji је Apache Ant пројекат за генерисање кода и трансформацију података.

Види још

Референце

  1. ^ Ricardo Aler Mur, "Automatic Inductive Programming Архивирано на сајту Wayback Machine (4. март 2016)", ICML 2006 Tutorial. June 2006.
  2. ^ D. L. Parnas. "Software Aspects of Strategic Defense Systems." American Scientist. November 1985.
  3. ^ Chun, Wendy. "On Software, or the Persistence of Visual Knowledge." Grey Room 18. Boston:. 2004. стр. 30.
  4. ^ James Wilcox, "Paying Too Much for Custom Application Development", March 2011.[непоуздан извор?]
  5. ^ Martin Fowler, "Crossing Refactoring's Rubicon"
  6. ^ C. Gomez and T.C. Scott, Maple Programs for Generating Efficient FORTRAN Code for Serial and Vectorized Machines, Comput. Phys. Commun. 115, pp. 548-562, 1998 [1].
  7. ^ T.C. Scott and Wenxing Zhang, Efficient hybrid-symbolic methods for quantum mechanical calculations, Comput. Phys. Commun. 191, pp. 221-234, 2015 [2].
  8. ^ T.C. Scott, I.P. Grant, M.B. Monagan and V.R. Saunders, Numerical Computation of Molecular Integrals via optimized (vectorized) FORTRAN code, Proceedings of the Fifth International Workshop on New computing Techniques in Physics Research (Software Engineering, Neural Nets, Genetic Algorithms, Expert Systems, Symbolic Algebra, Automatic Calculations), held in Lausanne (Switzerland), Nucl. Instr. Meth. Phys. Res. 389, A, pp. 117-120, 1997 [3].
  9. ^ Inc., Ziff Davis (1986). PC Mag. Ziff Davis, Inc. стр. 281. 
  10. ^ Announcing Softcode Version 2.5
  11. ^ „Wallsoft/Template Garden Software”. Архивирано из оригинала 03. 03. 2016. г. Приступљено 16. 01. 2016. 
  12. ^ Arora, Ashok; Bansal, Shefali. Comprehensive Computer and Languages. Firewall Media. стр. 41. ISBN 978-81-7008-355-9. Приступљено 19. 9. 2014. „Jenifer is a full-scale code generator that provides a pattern called template, from which the code is generated. After definig screens, menus and reports, Genifer creates the data files, index files and programs. 

Литература

  • Arora, Ashok; Bansal, Shefali. Comprehensive Computer and Languages. Firewall Media. стр. 41. ISBN 978-81-7008-355-9. Приступљено 19. 9. 2014. „Jenifer is a full-scale code generator that provides a pattern called template, from which the code is generated. After definig screens, menus and reports, Genifer creates the data files, index files and programs. 
  • Генеративно Програмирање: Методе, алати и апликације по Крзисзтоф Цзарнецки и Улрицх В. Еисенецкер, Аддисон Веслеи, 2000.

Спољашње везе

Read other articles:

Basilika Bunda Maria DikandungBasilika Minor Bunda Maria DikandungPortugis: Basílica Nossa Senhora da Conceiçãocode: pt is deprecated Basilika Bunda Maria DikandungLokasiConceição do Rio VerdeNegara BrasilDenominasiGereja Katolik RomaArsitekturStatusBasilika minorStatus fungsionalAktif Basilika Bunda Maria Dikandung (Portugis: Basílica Nossa Senhora da Conceiçãocode: pt is deprecated ) adalah sebuah gereja basilika minor Katolik yang terletak di Conceição do Rio Verde, Brasil. ...

 

Neuroglia pada otak ditunjukkan dengan metode Golgi. Astrosit, tidak seperti glia matang, dapat diidentifikasi pada kultur karena mereka mengekspresikan glial fibrillary acidic protein. Neuroglia atau sel glia adalah sel-sel yang paling banyak ditemukan dalam sistem saraf. Sel-sel tersebut tidak berperan secara langsung dalam pengolahan informasi dan transmisi dan berfungsi untuk menyokong kebutuhan dari sel neuron. Jenis Secara umum terdapat tiga macam Neuoroglia yakni:[1] Astroglia/...

 

Soil type AlfisolAn Alfisol profileUsed inUSDA soil taxonomyClimatevarious Alfisols are a soil order in USDA soil taxonomy. Alfisols form in semi-arid to humid areas, typically under a hardwood forest cover. They have a clay-enriched subsoil and relatively high native fertility. Alf refers to aluminium (Al) and iron (Fe). Because of their productivity and abundance, Alfisols represent one of the more important soil orders for food and fiber production. They are widely used both in agriculture...

Buenos Aires Underground station Congreso de TucumánGeneral informationLocationAv. Cabildo and Av. CongresoCoordinates34°33′20.2″S 58°27′44.7″W / 34.555611°S 58.462417°W / -34.555611; -58.462417PlatformsIsland platformsConnectionsHistoryOpened27 April 2000Services Preceding station Buenos Aires Underground Following station Terminus Line D Juramentotowards Catedral Congreso de Tucumán is a station on Line D of the Buenos Aires Underground and is the curre...

 

Durga KhoteKhote dalam Amar Jyoti (1936)Nama asalदुर्गा खोटेLahir(1905-01-14)14 Januari 1905Mumbai, Maharashtra. IndiaMeninggal22 September 1991(1991-09-22) (umur 86)Mumbai, Maharashtra. IndiaPekerjaanaktor, produser filmTahun aktif1931−1983 Durga Khote (14 Januari 1905 − 22 September 1991) adalah seorang aktris Indian, yang menjadi salah satu pemeran utama perempuan terkenal pada masanya. Ia aktif dalam sinema Hindi dan Marathi, serta teater, selama le...

 

Canadian Crown Corporation agency This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Canadian Air Transport Security Authority – news · newspapers · books · scholar · JSTOR (May 2017) (Learn how and when to remove this template message) Canadian Air Transport Security AuthorityAgency overviewFormedApril 1, 2002...

Series of disputed celestial events (1977) A copy of the lost photograph of the Petrozavodsk object The Petrozavodsk phenomenon was a series of celestial events of a disputed nature that occurred on 20 September 1977. The sightings were reported over a vast territory, from Copenhagen and Helsinki in the west to Vladivostok in the east.[1] It is named after the city of Petrozavodsk in Russia, Soviet Union, where a glowing object was widely reported that showered the city with numerous ...

 

Buddhist mantra Om mani padme humChinese nameChinese唵嘛呢叭咪吽TranscriptionsStandard MandarinHanyu PinyinŌng mā nī bēi mēi hōngKarandavyuha Sutra nameChinese唵麼抳缽訥銘吽TranscriptionsStandard MandarinHanyu PinyinŌng mó ní bō nè míng hōngTibetan nameTibetanཨོཾ་མ་ཎི་པདྨེ་ཧཱུྃTranscriptionsWylieoM ma Ni pad+me hU~MTibetan PinyinOm Mani Bêmê HumVietnamese nameVietnameseÚm ma ni bát ni hồngÁn ma ni bát mê hồngThai nameTha...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Children and Family Court Advisory and Support Service – news · newspapers · books · scholar · JSTOR (September 2008) (Learn how and when to remove this message) Children and Family Court Advisory and Support ServiceAbbreviationCafcassFormation1 April 2001TypeN...

Rue Radziwill Rue Radziwill adalah sebuah jalan di arondisemen ke-1 Paris. Itu dimulai di 1 rue des Petits-Champs dan berakhir di jalan buntu. Itu dinamai Pangeran Polandia, politisi dan salah satu orang terkaya di Eropa Karol Stanisław Radziwiłł.[1] Catatan ^ Rue Radziwill, 75001 Paris Pranala luar Cari tahu mengenai Rue Radziwill pada proyek-proyek Wikimedia lainnya: Definisi dan terjemahan dari Wiktionary Gambar dan media dari Commons Berita dari Wikinews Kutipan dari Wikiquote ...

 

Zwentibold Zwentibold dans la Historia Welforum (v. 1170). Titre Roi de Lotharingie mai 895 – 30 août 900(5 ans et 3 mois) Prédécesseur Arnulf de Carinthie Successeur Louis IV de Germanie Biographie Dynastie Carolingiens Date de naissance 870 ou 871 Date de décès 13 ou 30 août 900 Lieu de décès Susteren (Lotharingie) Sépulture Abbaye de Susteren Père Arnulf de Carinthie Mère Vinburge(?) Fratrie Ratold d'ItalieLouis IV de Germanie Conjoint Oda de Saxe modifier...

 

En Volvo T 25. Volvo T 24 / T 25 är en traktor från Volvo. T 24 hade motor för fotogen, T 25 för bensin. I övrigt är de lika. Traktorn tillverkades mellan 1953 och 1959, och var en vidareutveckling av Volvo T 22-23. T24 tillverkades i ett antal av 9825 exemplar och T25 i 6 445 exemplar[1]. Andra utföranden Under åren 1953-1955 tillverkades den i grönmålat BM-utförande med Austinmotor med modellbeteckningarna 200 Teddy i bensinutförande och 210 Teddy i fotogenutförande i 2 400 exe...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Nordic swan – news · newspapers · books · scholar · JSTOR (April 2017) (Learn how and when to remove this message) The Nordic swan mark The Nordic Ecolabel or Nordic swan is the official sustainability ecolabel for products from the Nordic countries. It was int...

 

American movie composer For other people with similar names, see Joseph Conlin (disambiguation). This biography of a living person includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately, especially if potentially libelous or harmful. Please help improve this article by introducing more precise citations. (July 2...

 

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 describes a work or element of fiction in a primarily in-universe style. Please help rewrite it to explain the fiction more clearly and provide non-fictional perspective. (June 2018) (Learn how and when to remove this message) The topic of this article may not meet Wikipedia's general notability guideline. Please help to demonst...

Politics of Monaco Constitution Human rights Monarchy Prince (list) Albert II Prince Jacques Princely family Succession Crown Council Executive Minister of State Pierre Dartout Council of Government Legislative National Council President: Brigitte Boccone-Pagès Judiciary Supreme Court Court of Appeal Court of Revision High Council of Judges and Prosecutors The Justice of the Peace Elections Recent elections General: 201320182023 Political parties Administrative division Communal Council Mayo...

 

2023 EP by ZerobaseoneMelting PointDigital coverEP by ZerobaseoneReleasedNovember 6, 2023 (2023-11-06)Genre K-pop dance pop Length14:45LanguageKoreanLabelWakeOneZerobaseone chronology Youth in the Shade(2023) Melting Point(2023) You Had Me at Hello(2024) Singles from Melting Point CrushReleased: November 6, 2023 Melting Point is the second extended play by South Korean boy group Zerobaseone. It was released on November 6, 2023, by WakeOne and consists of five tracks, w...

 

American artist (1823–1879) For the American soldier and Medal of Honor recipient, see William Henry Powell (soldier). For the English architect, see William Henry Powell (architect). William Henry PowellPowell circa 1850Born(1823-02-14)February 14, 1823DiedOctober 6, 1879(1879-10-06) (aged 56)NationalityAmerican William Henry Powell (February 14, 1823 – October 6, 1879), was an American artist who was born and died in New York City. Powell is known for a painting of the Battle of La...

NawaatNawaat from the inside Formation2004TypeActivist OrganizationHeadquartersTunis, TunisiaOfficial language French, Arabic, EnglishKey peopleSami Ben Gharbia, Riadh Guerfali, Sufian Guerfali, Malek KhadraouiWebsitenawaat.org Nawaat (Arabic: نواة) is an independent collective blog co-founded by Tunisians Sami Ben Gharbia, Sufian Guerfali and Riadh Guerfali in 2004, with Malek Khadraoui joining the organization in 2006.[1][2] The goal of Nawaat's founders was to provide a...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2015) عبد الملك العباسي معلومات شخصية تعديل مصدري - تعديل   عبد الملك بن صالح بن علي بن عبد الله بن العباس أمير من بني العباس، ولاه الهادي إمرة الموصل سنة 169 هــ...