六月八号是什么星座| 低密度脂蛋白偏高是什么意思| 北字五行属什么| 巨蟹和什么星座最配对| 细菌性肠炎是什么原因引起的| 阴道炎是什么症状| 口渴喝什么最解渴| 正正得什么| 牵牛花是什么颜色| 省管干部是什么级别| 纺织业属于什么行业| 左氧氟沙星氯化钠注射作用是什么| 斗鱼吃什么食物| 翠色是什么颜色| 胎盘低置需要注意什么| 代表什么意思| 什么是回迁房| 怀孕两个月出血是什么原因| 桑葚有什么功效和作用| 黄鼠狼为什么怕鹅| 强身之道的强是什么意思| 什么动物菩萨心肠| 跳大神什么意思| 是非是什么意思| 什么是剧烈运动| 鱼肚是什么| 嘴里有粘液是什么原因| 接触是什么意思| 潴是什么意思| 命门火衰是什么意思| 备孕喝苏打水什么作用| 洋人是什么意思| 咖喱是什么材料做的| 肛门坠胀吃什么消炎药| 什么样的阳光填形容词| 朱元璋代表什么生肖| 股骨长径是指胎儿什么| 怀孕第一个月最怕什么| 黄瓜为什么是苦的| 拉肚子是什么原因造成的| 手上起小水泡痒是什么原因| 黑曜石是什么| 一般细菌涂片检查是查什么| bcc是什么意思| 丹参滴丸和丹参片有什么区别| 什么叫眩晕| 秋分是什么意思| 柔然人是现在的什么人| 壶嘴为什么不能对着人| 午睡睡不着是什么原因| 03属什么| 谷草谷丙比值偏高说明什么| 经常吃豆腐有什么好处和坏处| 珠地棉是什么面料| 青茶是什么茶| 面碱是什么| 大便咖啡色什么原因| 有什么黄色网站| 无花果有什么功效| 逆光是什么意思| 河粉为什么叫河粉| 家里为什么会有蚂蚁| 高血糖能吃什么| 缓解是什么意思| 总胆固醇偏高是什么意思| 吃什么对眼睛有好处| pp1是什么意思| 杀鸡给猴看什么意思| 布谷鸟叫有什么征兆| 失眠是什么意思| 出殡下雨是什么兆头| 九分裤配什么鞋| 离卦代表什么| 地蛋是什么| 支原体阳性什么意思| 半夜三更是什么生肖| 蕞是什么意思| 便秘用什么药好| 枫叶的花语是什么| 什么人不能吃香蕉| 阿司匹林肠溶片治什么病| 吃什么缓解便秘| 月经期间喝什么好排毒排污血| 水瓜有什么作用和功效| 急躁是什么意思| 空腹喝啤酒有什么危害| 风的孩子叫什么| pph是什么材料| 腺癌是什么原因引起的| 荷花是什么形状的| 补铁有什么作用和功效| 手会发抖是什么原因| 腰肌劳损看什么科| 什么时候受孕率最高| 红色象征什么| 唐氏筛查临界风险是什么意思| 香米是什么米| 单位工会主席是什么级别| 菱形脸适合什么发型| 直肠肿瘤手术后吃什么| 眼睛蒙蒙的是什么原因| 小儿发烧吃什么药| 两岁宝宝不开口说话是什么原因| 发烧38度吃什么药| 77年什么命| lot是什么意思| 水印是什么意思| 腰间盘突出吃什么药好| 饕餮长什么样| 今年什么生肖| 梦见和尚是什么预兆| 梦见给别人剪头发是什么意思| 外阴白斑擦什么药| 为什么不| UFS是什么意思| 直肠炎有什么症状| 标新立异是什么意思| 为什么会喜欢一个人| 为什么会湿气重| 开放式耳机是什么意思| 白带有腥味是什么原因| 上环什么时候去最合适| tba是什么意思| 舌头尖有小红点这是什么症状| 地藏菩萨的坐骑是什么| 什么人什么目| 张若昀原名叫什么| jk制服是什么意思| 82年的拉菲是什么意思| 大腿内侧是什么经络| 桑叶有什么作用| 维生素d3什么牌子好| 老人大便失禁是什么原因| 牙龈发炎吃什么药| 硬性要求是什么意思| 高碎是什么茶| 急性扁桃体化脓是什么原因引起的| 炀是什么意思| 蒙羞是什么意思| 急性尿道炎吃什么药| 事后紧急避孕药什么时候吃有效| 无奇不有是什么意思| 血浓度高是什么原因| 蚯蚓中药叫什么| 破代表什么生肖| 缘分是什么意思| 盆腔炎吃什么药效果最好| 尿点什么意思| 心肾两虚吃什么中成药| 梦见骑自行车是什么意思| 俞字五行属什么| 野是什么意思| 产后第一天吃什么最好| pearl是什么意思| 球菌阳性是什么意思| 台甫是什么意思| 为什么老长口腔溃疡| 艾特是什么意思| 右手大拇指发麻是什么原因| 蝶窦炎是什么病| 心里恶心是什么原因| 总胆红素偏高是什么原因| 限期使用日期是什么意思| 鱼油对身体有什么好处| 娃娃鱼是什么动物| 胃不好吃什么| 小腿肚疼是什么原因| 狗狗流鼻涕吃什么药| 胃动力不足是什么原因造成的| hr是什么意思| 淋巴发炎吃什么药好| 45年属什么| 保泰松是什么药| 女人长期喝西洋参有什么好处| 伏吟是什么意思| 手经常出汗是什么原因| a型血与o型血生的孩子是什么血型| 县纪委副书记什么级别| 初心是什么意思| 器质性心脏病是什么意思| 睡觉总醒是什么原因| 腿外侧是什么经络| 均金念什么| 心境情感障碍是什么病| 狗为什么喜欢吃屎| 30号来的月经什么时候是排卵期| 相向而行是什么意思| 鼻窦炎是什么病| 199是什么意思| 感染四项挂什么科| aupres是什么牌子化妆品| beginning什么意思| 鳖是什么动物| 腿胖是什么原因引起的| 肩膀疼应该挂什么科| 金榜题名是什么生肖| 红楼梦为什么叫石头记| 蔚字五行属什么| 舔是什么意思| 离婚的女人叫什么| 蝉什么时候出来| 贫血是什么原因| 血糖高是什么原因造成的| 粘膜充血水肿什么意思| 夯实是什么意思| 珍珠米是什么米| 吃什么水果能壮阳| 淮山是什么| 肝癌是什么症状| sk是什么意思| 干什么一天能挣1000元| 肛门上长了个肉疙瘩是什么原因| 失眠吃什么食物最有效| 梦见杀人什么意思| app有什么用途| 吃什么可以补黑色素| 全身酸痛吃什么药| 脑梗什么不能吃| 眉心长痘是什么原因| p什么意思| 孩子血铅高有什么症状| 八髎区疼是什么原因| 雾霾是什么意思| 紫菜和海苔有什么区别| 喝什么最解渴| 张信哲为什么不结婚| 尾骨疼痛挂什么科| 晒太阳对身体有什么好处| 付诸行动是什么意思| 什么药止痒效果最好| 为什么要延迟退休| 送女朋友什么礼物| 蛇为什么怕雄黄| 高血压吃什么降的快| 养成系是什么意思| 肠胃不好适合喝什么茶| 两个月没有来月经了是什么原因| 老三篇是什么意思| 9月28号是什么星座| 什么是梦想| 网名取什么好听| 纳采是什么意思| 鼻窦炎长什么样图片| 前列腺是什么东西| 吃什么月经会推迟| 手心发热是什么原因| 月经刚完同房为什么痛| 腘窝囊肿挂什么科| 无菌性前列腺炎吃什么药效果好| 蜂蜜什么时候喝比较好| 缺钾有什么症状和危害| 挚友是指什么的朋友| 牛刀割鸡是什么生肖| 梦见死了人是什么征兆| 奶水不足是什么原因造成的| 胆结石吃什么排石最快| 淀粉酶偏高是什么原因| 华西医院院长什么级别| 夏天穿什么鞋子| 亲什么意思| 射手男和什么星座最配| 家婆是什么意思| 贝贝什么意思| 塌陷是什么意思| 百度Vai al contenuto

诚招施工图设计师若干名、诚招CAD绘图员若干名

Da Wikipedia, l'enciclopedia libera.
百度 共青团是密切联系青年的组织,改称同志,有助于共青团更好地融入到青年中去,从而为他们提供更优质的服务。

In informatica, la programmazione dichiarativa è un paradigma di programmazione secondo cui la logica della computazione viene espressa senza descrivere il suo controllo di flusso.[1]

Molti linguaggi che applicano questo stile mirano a minimizzare o eliminare eventuali effetti collaterali descrivono che cosa il programma deve compiere in termini dello specifico dominio del problema, piuttosto che descrivere come compierlo sotto forma di una sequenza di primitive;[2] il "come" viene lasciato all'implementazione del linguaggio. Questo è in contrapposizione con la programmazione imperativa, che implementa algoritmi descritti esplicitamente nei loro passaggi.[3]

La programmazione dichiarativa spesso considera i programmi come teorie di logica formale che definiscono un certo spazio logico, all'interno del quale le computazioni sono considerate delle deduzioni. Questo paradigma può permettere una grande semplificazione nella scrittura di programmi di calcolo parallelo.[4]

Alcuni linguaggi dichiarativi comuni sono i linguaggi di interrogazione (come SQL, XQuery), le espressioni regolari, la programmazione logica (come Prolog, Datalog, answer set programming), la programmazione funzionale, e i sistemi di gestione di configurazioni.

Nel primo significato si intende un programma che descrive a cosa una certa entità assomiglia, piuttosto che prescrivere come un'entità può essere creata. Ad esempio le pagine web HTML sono dichiarative, perché descrivono cosa la pagina dovrebbe contenere — titolo, testo, immagini — ma non come si deve fare per visualizzare la pagina sullo schermo del computer. Altri linguaggi, come il Fortran, il C e Java si basano su un diverso approccio, richiedendo al programmatore di implementare specifici algoritmi esecutivi. In sintesi, i programmi imperativi definiscono in modo esplicito un algoritmo per conseguire uno scopo, mentre i programmi dichiarativi definiscono in modo esplicito soltanto lo scopo da raggiungere, lasciando che l'implementazione dell'algoritmo sia realizzata dal software di supporto (per esempio, un'istruzione select di SQL specifica le proprietà dei dati che devono essere estratti da un database, ma NON i dettagli del processo di estrazione vero e proprio).

Nel secondo significato si intende un programma scritto utilizzando un linguaggio di tipo puramente funzionale, logico, o a vincoli. La locuzione "linguaggio dichiarativo" si applica talvolta all'insieme di queste tipologie di linguaggi di programmazione, presi in gruppo e considerati come antitetici rispetto ai linguaggi imperativi. In una certa misura queste due definizioni si sovrappongono. In particolare la programmazione a vincoli e, in minor misura, la programmazione logica, si focalizzano sulla descrizione delle proprietà della soluzione desiderata (il cosa), lasciando indeterminato l'algoritmo da usare per trovare la soluzione (il come). Tuttavia la maggior parte dei linguaggi a vincoli e logici sono in grado di descrivere gli algoritmi ed i dettagli dell'implementazione dei metodi, e quindi non possono rientrare nella categoria dei dichiarativi veri e propri.

Analogamente, è possibile scrivere programmi in stile dichiarativo anche usando un linguaggio di tipo imperativo, di solito ricorrendo alla tecnica dell'incapsulamento. I dettagli delle operazioni da eseguire sono inglobati all'interno di una libreria o di un framework. Un esempio è JUnit, framework della famiglia Java, che permette, previa una semplice definizione, di registrare i blocchi di programma da testare.

In un programma dichiarativo si definiscono le strutture di dati che possono essere elaborate dagli algoritmi standardizzati dal linguaggio per produrre i risultati desiderati. Un linguaggio dichiarativo, come ogni altro linguaggio, definisce una propria sintassi mediante la quale le parole chiave possono essere combinate, ed una semantica che descrive l'output ottenuto utilizzando una certa sequenza di comandi.

Linguaggi di programmazione domain-specific

[modifica | modifica wikitesto]

Questi linguaggi, detti anche DSL, sono progettati per rispondere alle esigenze di uno specifico settore di utilizzo, e sono spesso di tipo dichiarativo. Alcuni esempi sono i file di configurazione, i fogli di lavoro, e persino le Email, dove gli header "Da:" e "A:" possono essere considerati come istruzioni da processare. Una limitazione dei DSL è di non rispondere completamente agli enunciati di Turing, nel senso che ci sono cose che questi linguaggi non possono fare (più esattamente: non sono dotati di Turing equivalenza). Per esempio: non si possono usare gli spreadsheet per spedire email, e, per inverso, non si può usare un'email per calcolare il saldo di un conto corrente bancario. Per questa ragione i DSL sono spesso integrati (embedded) all'interno di linguaggi general-purpose. Questo approccio permette al programmatore di usare i DSL per eseguire le operazioni loro specifiche, ed il linguaggio general-purpose per affrontare problemi che sarebbe molto difficile (se non impossibile) risolvere con i DSL. I programmi DSL stand-alone — quelli non integrati nei linguaggi general-purpose — sono solitamente più facili da usare, perché non hanno bisogno di aggiungere le complessità concettuali imposte da un linguaggio general-purpose.

Framework la cui installazione racchiude alcuni aspetti della programmazione dichiarativa:

Linguaggi domain-specific che supportano la programmazione dichiarativa:

  • XSLT linguaggio dichiarativo per trasformare documenti XML
  • SQL comprende una parte dichiarativa (queries per database relazionali)
  • TK Solver
  • XForms un formato XML che definisce un modello di data processing per dati in formato XML e interfacce utente per la manipolazione di dati XML, come ad esempio web form.

Linguaggi funzionali/logici/vincolati che supportano la programmazione dichiarativa:

  1. ^ (EN) J. W. Lloyd, Practical Advantages of Declarative Programming.
  2. ^ (EN) declarative language, su FOLDOC, 17 maggio 2004. URL consultato il 7 settembre 2023.
  3. ^ (EN) Robert Sebesta, Concepts of programming languages, Boston, Pearson, 2016, ISBN 978-0-13-394302-3, OCLC 896687896.
  4. ^ (EN) DAMP 2009: Workshop on Declarative Aspects of Multicore Programming, su cse.unsw.edu.au, 20 gennaio 2009. URL consultato il 15 agosto 2013 (archiviato dall'url originale il 13 settembre 2013).

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàLCCN (ENsh93000071 · GND (DE4293503-9 · BNE (ESXX538968 (data) · BNF (FRcb123495726 (data) · J9U (ENHE987007544381005171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
宝宝有口臭是什么原因引起的 银子发黑是什么原因 陕西有什么山 木薯淀粉是什么粉 孙权与孙策是什么关系
小孩耳朵痛什么原因 喝牛奶就拉肚子是什么原因 甘露醇治什么病 老子是什么时期的人 腋毛有什么作用
每天吃维生素c有什么好处 胃疼想吐是什么原因 中耳炎什么症状 什么争鸣成语 stella是什么意思
脸上出汗多是什么原因 喉咙痒痒的吃什么药 冉字五行属什么 梦见盗墓是什么意思 梦见打苍蝇是什么意思
尿检ph值偏高说明什么hcv8jop6ns7r.cn 下午3点半是什么时辰hcv8jop4ns8r.cn 勖是什么意思hcv9jop4ns3r.cn 梦见建房子是什么预兆hcv9jop1ns4r.cn 滑档是什么意思hcv9jop4ns3r.cn
老年人腿浮肿是什么原因引起的0735v.com 为什么插几下就射了hcv9jop2ns0r.cn 梦见自己生了个女儿是什么预兆hcv8jop3ns2r.cn 皮肤长癣是什么原因hcv9jop5ns0r.cn 小孩脚抽筋是什么原因引起的hcv9jop2ns4r.cn
猪肝补什么功效与作用hcv9jop5ns7r.cn 生酮饮食是什么hcv9jop6ns7r.cn 妊娠高血压什么症状kuyehao.com hpv阳性意味着什么naasee.com 起酥油是什么hcv8jop8ns9r.cn
小鸟进屋有什么预兆吗hcv8jop5ns7r.cn 海兔是什么hcv7jop9ns1r.cn ap医学上是什么意思hcv7jop5ns1r.cn 小孩长白头发是什么原因hcv8jop2ns1r.cn 尿酸高可以吃什么水果hcv7jop5ns5r.cn
百度