225 matches
-
o programare deosebit de acurată (sincronizare). Un model de programare paralelă este un set de tehnologii software pentru formularea de algoritmi paraleli și adaptarea aplicațiilor la sistemele de calcul paralel existente. Se referă la diverse domenii ale aplicațiilor, limbaje de programare, compilatoare, biblioteci de programe, sisteme de comunicație și sisteme cu I/O paralel. Pentru a realiza o aplicație pe o anumită platformă dată, programatorii trebuie să aleagă un model potrivit de programare paralelă sau o formă de îmbinare a unor modele
Calcul paralel () [Corola-website/Science/303792_a_305121]
-
scripturile folosite pentru a controla compilarea și instalarea executabilului. Cu toate acestea, ca o excepție, nu este obligatorie distribuirea împreuna cu codul sursă a acelor componente care sunt în mod normal distribuite (în format sursă sau binar) cu componentele majore (compilator, nucleu, etc.) ale sistemului de operare sub care rulează executabilul, exceptând situația în care acea componentă acompaniază executabilul. Dacă distribuția executabilului sau codului obiect este făcută prin oferirea permisiunii de copiere dintr-un loc dedicat, atunci oferirea permisiunii de copiere
GPL (licență, versiunea 2) () [Corola-website/Science/311426_a_312755]
-
manuscript arabic datează din secolul al XIV-lea, iar cărțile de știință în general datează din 800-900 d.Hr. Nucleul acestor povestiri este format de o carte antică persană intitulată Hazăr Afsăn ,(în persană: هزارافسانه lit. "O mie de povești"). Compilatorul și traducătorul acestor povestiri în arabă este povestitorul Abu abd-Allah Muhammed el-Gahshigar, ce a trăit, aproximativ, în secolul al IX-lea. Istoria Șeherezadei ce servește de cadru celorlalte povetiri, pare că a fost adăugată în secolul al XIV-lea. Prima
O mie și una de nopți () [Corola-website/Science/312800_a_314129]
-
de exemplu, și exclud în mod deliberat anumite funcționalități ce ar putea fi exploatate de virușii de tip macro. Limbaje de programare cum ar fi C și limbajul de asamblare au un sistem simplu de macrouri, implementate ca preprocesoare la compilator sau asamblor. Macrourile preprocesorului C funcționează ca o simplă operațiune de căutare și modificare textuală la nivelul de element de sintaxă, deci nu lucrează la nivel de caracter. O utilizare tipică pentru macrouri este întâlnită în sistemul de tehnoredactare computerizată
Macrosubstituție () [Corola-website/Science/309495_a_310824]
-
metodă constructivă de abordare a acestor tipuri de sintaxă a macrourilor este calculul multi-stadiu. Alte exemple: Limbajul PL/I este unic în modul în care se scriu macrourile sale, folosind chiar sintaxa limbajului, acestea fiind un subset al acestui limbaj: compilatorul execută "instrucțiuni de preprocesor" în momentul compilării, și rezultatul acestui proces constituie o parte din codul ce este compilat. Capacitatea de a utiliza limbajul procedural familiar în descrierea de macrouri determină creșterea puterii și constituie un avantaj față de metodele simple
Macrosubstituție () [Corola-website/Science/309495_a_310824]
-
constituie o parte din codul ce este compilat. Capacitatea de a utiliza limbajul procedural familiar în descrierea de macrouri determină creșterea puterii și constituie un avantaj față de metodele simple de macrosubstituție, aceasta determinând în aceeași măsură creșterea dimensiunii și complexității compilatorului, odată cu scăderea vitezei acestuia. Majoritatea limbajelor de asamblare au implementat modele mult mai simpliste de macrouri procedurale, de exemplu dau posibilitatea de a repeta o porțiune de cod de N ori pentru desfacerea buclelor; dar acestea au o sintaxă complet
Macrosubstituție () [Corola-website/Science/309495_a_310824]
-
obișnuit nu este furnizată într-o clasă abstractă, ea poate fi totuși inclusă în aceasta. Toate clasele concrete derivate din clasa abstractă vor trebui totuși să rescrie metoda, dar implementarea oferită de clasa abstractă poate fi apelată în acest mod: Compilatorul știe ce metodă implementată va trebui apelată în timpul execuției și produce o tabelă de pointeri spre toate funcțiile virtuale dintr-o clasă, denumită o codice 16 sau tabelă virtuală ce va fi inclusă în programul executabil. Limbajele orientate obiect gestionează alocarea
Funcție virtuală () [Corola-website/Science/309519_a_310848]
-
În domeniul programării, un monitor este o metodă de sincronizare a doua sau mai multe sarcini ce folosesc o resursă comună, de obicei un dispozitiv hardware sau o mulțime de variabile. În concurență pentru monitor compilatorul sau interpretorul introduce cod, în mod „transparent” (automat și neexplicit), pentru blocarea sau deblocarea unor proceduri specificate, fără a fi nevoie ca programatorul să acceseze explicit elementele de sincronizare. A fost inventat de Per Brinch Hansen, implementat pentru prima dată
Monitor (sincronizare) () [Corola-website/Science/309212_a_310541]
-
caz spune că 'balanța' trebuie să reflecte toate operațiile efectuate înainte ca să înceapă o altă operație. Acest lucru nu este specificat în cod, dar poate fi menționat prin comentarii. Există însă limbaje care pot verifica invarianții. Lacătul este adăugat de compilator. Asta face monitorul mai sigur decât abordările unde este necesar ca programatorul să introducă operații de încuiere și descuiere, deoarece programatorul poate greși sau uită acest lucru. Ca să nu se intre într-o stare de "așteptare ocupată", procesele trebuie să
Monitor (sincronizare) () [Corola-website/Science/309212_a_310541]
-
care este disponibilă publicului sub formă de cod sursă. În acest context, o „componentă majoră” înseamnă o parte importantă (nucleu, sistem de ferestre etc.) a sistemului de operare respectiv (dacă există), pe care lucrarea în format executabil rulează, sau un compilator folosit pentru a produce lucrarea, sau un interpretor de cod obiect folosit pentru a o executa. „Sursa Corespondentă” a unei lucrări în formă de cod obiect este constituită din întregul cod sursă necesar pentru a genera, instala și (pentru o
GPL (licență, versiunea 3) () [Corola-website/Science/308804_a_310133]
-
conține șablonul funcție codice 1 ce returnează "x" sau "y", pe cel mai mare dintre cele două argumente. codice 2 ar putea fi declarat cam așa: Acest șablon poate fi apelat într-un mod identic cu apelul de funcție: Prin examinarea argumentelor, compilatorul deduce că acesta este un apel la codice 3 și produce (în engleză ""instantiates"") o versiune a funcției în care tipul codice 4 devine codice 5. Acest procedeu este valid pentru toate cazurile în care argumentele codice 6 și codice 7 sunt de tip întreg
Șablon (programare) () [Corola-website/Science/309480_a_310809]
-
prin intermediul macrourilor. De exemplu, iată un cod macro pentru codice 2: Macrourile și șabloanele sunt amândouă translatate în timpul compilării. Codul unui macro este întotdeauna inserat în program în locul unde apare un apel către acesta; pe când șabloanele sunt tratate ca funcții, deși compilatorul poate decide să insereze pe loc cod în loc de un apel de funcție, dacă consideră acest lucru oportun. Astfel macroinstrucțiunile și șabloanele funcție nu constituie o corvoadă în plus la momentrul execuției. În orice caz, șabloanele sunt în general considerate ca
Șablon (programare) () [Corola-website/Science/309480_a_310809]
-
frecvent întâlnite în cod ce abuzează de macroinstrucțiuni. Poate e lucrul cel mai important, șabloanele au fost gândite ca să aibă o aplicabilitate mult mai mare decât macrourile. Există trei mari inconveniente întâlnite la utilizarea șabloanelor. În primul rând, foarte multe compilatoare au avut un suport limitat pentru șabloane, astfel încât utilizarea șabloanelor poate determina scăderea portabilității codului sursă. În al doilea rând, aproape toate compilatoarele produc mesaje de eroare neproductive și derutante când sunt detectate erori în codul șablonului. Aceasta poate face
Șablon (programare) () [Corola-website/Science/309480_a_310809]
-
aproape toate compilatoarele produc mesaje de eroare neproductive și derutante când sunt detectate erori în codul șablonului. Aceasta poate face ca șabloanele să fie greu de programat. În al treilea rând, fiecare utilizare a unui șablon poate determina generarea de către compilator a unei noi versiuni de cod pentru noua instanță a șablonului, deci utilizarea fără discernământ a șabloanelor poate duce la încărcarea codului, rezultând executabile excesiv de mari. Șabloanele au fost lăsate în afara unor limbaje bazate pe C++, cum ar fi Java
Șablon (programare) () [Corola-website/Science/309480_a_310809]
-
mai târziu. Pentru ambele motive, aceasta este considerată ca fiind o mai cuprinzătoare colecție de avize disponibile. Pe de altă parte, pentru că perioada de reeditare între versiunea din Ierusalim și cea din Babilon, avizele timpurii ale amoraimilor (prima generație de compilatori) ar putea fi mai aproape de forma lor originală în Talmud-ul din Ierusalim. Din momentul finalizării, Talmudul a devenit o parte integrantă a studiului religiei evreiești. Timp de secole au apărut mai multe școli de studiu a textelor talmudice. Geonim
Talmud () [Corola-website/Science/305049_a_306378]
-
assembler". Într-un sens macrourile se aseamănă cu subprogramele / subrutinele. Un limbaj de programare se află la un nivel "înalt" atunci când, înainte de a putea fi executat, trebuie mai întâi să treacă prin unul sau chiar mai multe filtre de interpretare (compilatoare, medii de rulare). Nivele: Cu cat crește nivelul limbajului, cu atat acesta este mai usor de înțeles de către programator, iar cu cat scade nivelul limbajului, cu atat acesta este mai usor de "înțeles" pentru calculator. Pentru mărirea eficienței, în codul
Limbaj de asamblare () [Corola-website/Science/306157_a_307486]
-
și omiletice includ un comentariu la scrisorile pauline, predice despre nașterea și moartea Mariei; scrierile ascetice tratează despre post, despre virtuți și despre vicii. A luat parte cu siguranță și la compunerea unor Carmina (imnuri) liturgice. Scrierile Damaschinului au caracter compilator, întrucât nu doar că reia terminologia dialectică și teologică a Părinților Bisericii, dar îi și citează in extenso, fapt care deși evidențiază lipsa-i originalitate, în același timp ne arată cunoașterea sa profundă asupra acestei materii. A introdus în teologie
Ioan Damaschinul () [Corola-website/Science/305597_a_306926]
-
plantele superioare și introduce termenii de "carp" pentru fructe și "pericarp" pentru vasele conducătoare din țesutul vegetal. De asemenea, Plinius cel Batrân s-a făcut remarcat pentru cunoștintele sale privind plantele și animalele, fiind considerat unul dintre cei mai prolifici compilatori în domeniul zoologiei. În perioada elenistică, Herophilos din Calcedonia și Erasistrate din Keos, efectuând disecții și vivisecții, au reușit să aducă unele corecții teoriilor lui Aristotel din domeniul fiziologiei. Astfel, Herophilos consideră că sediul inteligenței se află în creier, nu
Istoria biologiei () [Corola-website/Science/314484_a_315813]
-
extensie a unui servlet care citește un fișier template în format XHTML ce conține descrierea prezentării folosind SAX (Simple API for XML) și adugă conținut, în mod dinamic, În locurile din template marcate cu identificatori speciali folosind funcții callback. Un compilator de template poate fi folosit penru a accelera . Hamlets oferă o platforma care ușurează dezvoltarea de aplicații pentru Internet într-un mod ușor de folosit, ușor de înteles, ce folosește puține resurse, bazat pe tehnologia servlet. Platforma Hamlets nu doar
Hamlets () [Corola-website/Science/313736_a_315065]
-
Instrucțiunile sunt organizate secvențial însă informația despre dependențe nu este înregistrată în fișierele binare. Numai fișierele binare compilate pentru o mașină cu arhitectură de tip dataflow conțin această informative de dependența între date. În loc de a folosi nume de variabile, un compilator de flux de date înregistrează aceste dependențe prin crearea unor taguri unice pentru fiecare dependență. Acordând fiecărei dependențe câte un tag unic, se permite secțiunilor non-dependente din fișierele binare să fie executate în altă ordine decât cea secvențială adică în
Arhitectură dataflow () [Corola-website/Science/322877_a_324206]
-
a fost conceput în mod special pentru aplicații software ce urmează a fi implementate pe dispozitive FPGA. Este dezvoltat de firmă Impulse Accelerated Technologies ce are sediul în Kirkland, Washington. Intrumentul de sinteză hardware de nivel inalt CoDeveloper include un compilator de și o librărie de funcții care sunt menite pentru dezvoltarea aplicățiilor bazate pe FPGA. Impulse C este compatibil cu standardul ANSI C, lucru ce permite utilizarea instrumentelor C standard pentru proiectarea și verificarea aplicățiilor ce urmează a fi implementate
Impulse C () [Corola-website/Science/322879_a_324208]
-
o librărie de funcții care sunt menite pentru dezvoltarea aplicățiilor bazate pe FPGA. Impulse C este compatibil cu standardul ANSI C, lucru ce permite utilizarea instrumentelor C standard pentru proiectarea și verificarea aplicățiilor ce urmează a fi implementate pe FPGA. Compilatorul Impulse C accepta instrucțiuni din limbajul C și generează hardware FPGA în formă fișierelor Hardware Description Language (HDL). Impulse C permite proiectanților de sisteme embedded cât și programatorilor să accelereze implementarea programelor C pe dispozitive FPGA. Impulse C suporta o
Impulse C () [Corola-website/Science/322879_a_324208]
-
mecanism de comunicare. Într-o aplicație Impulse C de streaming, procesele hardware și software comunica în principal prin stream-uri de date buffer-ate care sunt implementate direct în hardware. Buffer-ele de date sunt implementate folosind cozi dublu-ceas (dual-clock FIFO) generate de compilator. Această abordare face posibilă scrierea aplicățiilor paralele la un nivel de abstractizare relativ ridicat, fără a mai fi nevoie de sincronizare ciclu-cu-ciclu. Folosind Impulse C, o aplicație poate fi partiționata pentru a crea o implementare multi-proces care este segmentata în
Impulse C () [Corola-website/Science/322879_a_324208]
-
instrucțiuni care realizează adunarea a patru perechi de numere reale în simplă precizie (tipul de date "float" din C) în paralel. Aceste instrucțiuni au fost create pentru a îmbunătăți viteza aplicățiilor pentru procesare de imagine, sunet și video. Deși unele compilatoare încearcă să extragă automat acest tip de paralelism din programele scrise în C, o metodă mai fiabila este scrierea programelor folosind tipuri speciale de date (vectorizate) în compilatoare precum GCC. Intel a introdus în 1999 instrucțiunile SSE - acronim pentru Streaming
SIMD () [Corola-website/Science/322888_a_324217]
-
îmbunătăți viteza aplicățiilor pentru procesare de imagine, sunet și video. Deși unele compilatoare încearcă să extragă automat acest tip de paralelism din programele scrise în C, o metodă mai fiabila este scrierea programelor folosind tipuri speciale de date (vectorizate) în compilatoare precum GCC. Intel a introdus în 1999 instrucțiunile SSE - acronim pentru Streaming SIMD Extensions. SSE este o clasă de instrucțiuni pentru a manipula vectori de întregi sau de date în virgulă mobilă. Fiecare bloc de date poate avea dimensiuni de
SIMD () [Corola-website/Science/322888_a_324217]