Grundläggande programmeringsparadigm. Begreppet programmeringsparadigm Deklarativt och procedurminne


Betyg: / 0
Detaljer Visningar: 3084

Programmeringsparadigm

Vad är ett paradigm egentligen? Vi kan säga att detta är en viss syn på omvärldens fenomen och en idé om möjliga handlingar med dem. I programmering brukar ett paradigm förstås som en generalisering om hur arbetet i ett program ska organiseras.

Det finns bland annat sådana programmeringsparadigm som direktiv (strukturell), objektorienterad och deklarativ (funktionell-logisk). Många språk stöder flera programmeringsparadigm. Å andra sidan finns det språk som uteslutande fokuserar på implementeringen av ett paradigm.

Strukturerad programmering

Några representanter: Fortran, Pascal, C.

Ett direktivprogram föreskriver hur man uppnår ett resultat, och beskriver steg steg för steg. Därför är sådan programmering ganska lätt att förstå.

I strukturerad programmering beror sekvensen av kommandoexekveringen helt på indata.

Inom direktivprogrammering uppstod vid ett tillfälle konceptet att lokalisera en del av koden till så kallade subrutiner (funktioner, metoder), med efterföljande anrop från olika ställen i huvudprogrammet. När den anropas kan en subrutin skickas med vilken data som helst i form av argument; och subrutinen kan i sin tur returnera resultatet (det vill säga data som erhållits under dess exekvering) till huvudprogrammet.

Funktionell och logisk programmering

Representanter för funktionella språk: List, Haskell.

Representant för logiska språk: Prolog.

Ett deklarativt program anger (deklarerar) vad som ska uppnås som mål. Den exakta formuleringen av problemet är viktig. Programmeraren anger ingen algoritm för att lösa det.

Funktionell programmering bygger på det matematiska konceptet om en funktion som inte förändrar sin miljö; Detta är skillnaden mellan funktionell programmering och funktioner i strukturerade språk. Ett funktionsprogram består av en samling funktionsdefinitioner, som i sin tur representerar anrop till andra funktioner och satser som styr sekvensen av anrop. Varje funktion returnerar något värde till funktionen som anropade den, vars utvärdering sedan fortsätter; denna process upprepas tills resultatet uppnås.

I logisk programmering uttrycks program som matematiska logiska formler, och lösningen på ett problem uppnås genom att härleda logiska konsekvenser från dem.

Objektorienterad programmering

Representanter för objektorienterade språk: C++, Java, Python.

Särskild uppmärksamhet ägnas åt data som är representerade i programmet som objekt. Objekt interagerar med varandra med hjälp av en meddelandeöverföringsmekanism. Programmerarens uppgift är att implementera objekt så att när de interagerar med dem kommer det att vara möjligt att få önskat resultat.

OOP är designat för att lösa mer komplexa och omfattande problem jämfört med direktivprogrammering.

OOP bygger på begrepp som arv, polymorfism och inkapsling.

Inkapsling förutsätter att oviktiga detaljer om ett objekt är dolda. Ett objekt, som tar emot vilket kommando som helst, "vet" hur det ska behandlas baserat på den klass det tillhör.

Alla objekt är instanser av klasser, som i förhållande till varandra kan fungera som ett förälder-barn. Barnklasser ärver förälderns egenskaper. I de fall då 100 % arv inte krävs kommer så kallad polymorfism till undsättning, vilket innebär överordnade metoder för föräldraklassen i barnklasser.

Ett programmeringsparadigm är en uppsättning idéer och koncept som bestämmer stilen för att skriva program.

Imperativparadigmet beskriver beräkningsprocessen i form av instruktioner som ändrar programmets tillstånd. Ett imperativt program är mycket likt imperativt order i naturliga språk, det vill säga det är en sekvens av kommandon som datorn måste utföra. Baserad på Turing-Post finita automatmodell.

De första imperativa språken var maskinkoder - datorns infödda programmeringsspråk. På dessa språk var instruktionerna extremt enkla, vilket minskade belastningen på datorer, men gjorde det svårt att skriva stora program. 1954 dök det första "mänskliga" programmeringsspråket upp - FORTRAN, sedan ALGOL, COBOL, BASIC, Pascal, C.

En av de karakteristiska egenskaperna för imperativ programmering är närvaron av variabler med operationen "destruktiv tilldelning". Det vill säga, det fanns en variabel A, den hade ett värde X. Algoritmen instruerar att tilldela värdet Y till variabel A i nästa steg. Värdet som A hade kommer att vara "glömt för alltid".

Imperativ programmering är mest lämpad för att implementera små deluppgifter, där körhastigheten på moderna datorer är mycket viktig. Dessutom beskrivs arbetet med externa enheter vanligtvis i termer av sekventiell utförande av operationer ("öppna kranen, dra vatten"), vilket gör sådana uppgifter till idealiska kandidater för imperativ implementering.

Valet av ramverket för det imperativa paradigmet för att lära ut grunderna i programmering verkar vara utom tvivel. Det finns flera anledningar till detta:

· imperativparadigmet ligger närmast den mänskliga naturen och det intuitiva konceptet med en algoritm i de tidiga stadierna av tankeutveckling (det finns en positiv erfarenhet av utvecklingsutbildning med inslag av algoritmisering redan i grundskolan);

· programmering inom ramen för det imperativa paradigmet är effektivt för en bred klass av uppgifter, av vilka många faller inom området för proximal utveckling av elever i högstadiet i grundskolan;

· imperativparadigmet ligger närmast en dators natur, de grundläggande principerna för dess funktion, eftersom den, trots all komplexitet hos en modern dator, på hårdvarunivå fortfarande kan betraktas som någon slags automat (processor + minne + ...) med en ändlig uppsättning tillstånd (innehåll) minne);

· Andelen mjukvaruprodukter som skapats uteslutande inom ramen för det deklarativa programmeringsparadigmet är liten. Vid problemlösning används i regel en kombination av paradigm, varav ett är absolut nödvändigt;

· ett stort urval av programmeringssystem i form av oberoende programvara och i form av delsystem integrerade i andra system, vilket möjliggör utveckling av mjukvaruprodukter med hjälp av det imperativa paradigmet;


· ett omfattande utbud av utbildnings-, referens- och andra publikationer om relevanta programmeringssystem i pappersform och elektronisk form på olika medier och på det globala nätverket.

Nackdel: i sin rena form tillåter det bara att lösa mycket enkla problem.

Händelsestyrd programmering är programmering där programmets reaktioner på olika händelser (användaråtgärder) specificeras. PMS kan betraktas som en "ättling" till imperativparadigmet. SUP har 2 underklasser:

1.Parallell programmering representerar ett program som en uppsättning kommunicerande processer som kan utföras parallellt. Sådana program kan köras antingen på en processor (alternerande exekveringen av steg i varje process) eller på flera.

I ett parallellt processsystem bearbetar varje enskild process händelser. Händelser kan vara antingen generella för hela systemet eller individuella för en eller flera processer. I sådana termer är det ganska bekvämt att beskriva till exempel delar av ett grafiskt användargränssnitt eller modellering av alla verkliga processer (till exempel trafikkontroll) - eftersom konceptet med en händelse är naturligt för sådana uppgifter.

2. Objektorienterad programmering är en programmeringsteknik där ett program ses som en uppsättning objekt och deras interaktioner. Varje programobjekt är en instans av någon klass; - klasser kan ärva attributen och metoderna för sina överordnade klasser, samtidigt som de lägger till sina egna. Klasshierarkin låter dig modellera essensen av problemet som löses på flera detaljnivåer och sedan använda en klass som motsvarar den detaljnivå som krävs för att lösa en specifik deluppgift.

Det är viktigt att lyfta fram följande grundläggande egenskaper hos objekt:

1.) Eftersom ett objekt kan påverka ett annat enbart genom att skicka meddelanden till det senare, kan det inte på något sätt direkt arbeta med "samtalspersonens" egna data och kan därför inte bryta mot deras interna konsistens. Denna egenskap (datadöljning) kallas vanligtvis för inkapsling.

2.) Eftersom objekt interagerar enbart genom utbyte av meddelanden, kan samtalsobjekt inte veta något om implementeringen av meddelandehanterare i deras motsvarighet. Interaktion sker enbart i form av meddelanden/händelser, som är ganska lätta att binda till domänen. Denna egenskap (en beskrivning av interaktion enbart i termer av domänen) kallas abstraktion.

3.) Objekt interagerar uteslutande genom att skicka meddelanden till varandra. Därför, om du i något scenario av objektinteraktion ersätter ett godtyckligt objekt med ett annat som kan behandla samma meddelanden, kommer scenariot också att vara implementerbart. Denna egenskap (förmågan att ersätta ett objekt med ett annat objekt med en liknande klassstruktur) kallas polymorfism.

Många moderna språk stöder OOP, men i varierande grad: Rent objektorienterade språk, som Smalltalk och Ruby, är designade för att stödja och till och med genomdriva en objektorienterad utvecklingsstil, och stöder inte andra programmeringsstilar; - Övervägande objektorienterade språk, såsom Java, C++ och Python, är främst utformade för att stödja OOP, men tillåter användning av element av procedurprogrammering; – Historiskt sett har procedurspråk, till exempel Perl och Fortran 2002, förfinats och stöd för vissa OOP-element har lagts till.

Det deklarativa programmeringsparadigmet definierar beräkningsprocessen genom att beskriva logiken för själva beräkningen, snarare än programmets kontrolllogik.

Deklarativ programmering är motsatsen till imperativ programmering; den första beskriver vad som behöver göras, och den andra beskriver exakt hur man gör det.

De viktigaste typerna av deklarativ programmering är funktionell och logisk (eller relationell) programmering.

1.Funktionell programmering är ett av alternativen till det imperativa tillvägagångssättet. Den är baserad på kyrkans lambdakalkyl. I imperativ programmering är algoritmer beskrivningar av sekventiellt utförda operationer. Det finns konceptet med ett "aktuellt exekveringssteg" (det vill säga tid), och ett "nuvarande tillstånd" som förändras under den tiden.

Det finns inget begrepp om tid i funktionell programmering. Program är uttryck, programkörning består av att utvärdera dessa uttryck.

Eftersom ordningen i vilken deluttryck utvärderas inte spelar någon roll, kan funktionell programmering implementeras naturligt på plattformar som stöder parallellism.

Funktionell programmering, liksom andra "icke-imperativa" programmeringsmodeller, används vanligtvis för att lösa problem som är svåra att formulera i termer av sekventiella operationer. Nästan alla uppgifter relaterade till artificiell intelligens faller inom denna kategori. Bland dem är det värt att notera uppgifterna för bildigenkänning, kommunikation med användaren på naturligt språk, implementering av expertsystem, automatiserad teorembevisande och symboliska beräkningar. Dessa uppgifter är långt ifrån traditionell applikationsprogrammering, så de ägnas inte mycket uppmärksamhet i datavetenskapens läroplaner.

Logisk programmering

I funktionell programmering är program uttryck, och deras utförande består i att beräkna deras värde. Inom logisk programmering är ett program en teori (beskriven på ett ganska begränsat språk) och ett påstående som måste bevisas. Beviset för detta uttalande kommer att bestå av genomförandet av programmet.

Logisk programmering och Prolog-språket uppstod ur forskning inom området naturligt språkanalys. Senare upptäcktes det att logikprogrammering är lika effektivt för att implementera andra artificiella intelligensuppgifter.

Logisk programmering möjliggör naturlig parallell implementering.

Det visade sig att de paradigm som tidigare tog sig in i ljuset med svett och blod genom horder av anhängare av traditionella metoder gradvis glöms bort. Dessa paradigm uppstod i början av programmeringen och varför de uppstod, vilka fördelar de gav och varför de fortfarande används är fortfarande användbart för alla utvecklare att veta.

OK. Introduktionen är väldigt rolig, men du läser den inte i alla fall, så om någon är intresserad, välkommen till klippet!

Imperativ programmering



Historiskt sett har den stora majoriteten av datorteknik som vi programmerar ett tillstånd och är programmerad med instruktioner, så de första programmeringsspråken var huvudsakligen rent imperativa, d.v.s. stödde inte några andra paradigm än det imperativa.

Dessa inkluderade maskinkoder, assemblerspråk och tidiga högnivåspråk som Fortran.

Nyckelord:

I detta paradigm beskrivs beräkning i form av instruktioner som ändrar programmets tillstånd steg för steg.

I lågnivåspråk (som assemblerspråk) kan tillstånd vara minne, register och flaggor, och instruktioner kan vara de instruktioner som målprocessorn stöder.

I högre nivåer (som C) är tillståndet bara minne; instruktioner kan vara mer komplexa och orsaka att minne allokeras och avallokeras under driften.

I sådana på mycket hög nivå (som Python, om du programmerar det imperativt), är tillståndet begränsat till endast variabler, och kommandon kan vara komplexa operationer som skulle ta hundratals rader i assemblerspråk.

Grundläggande koncept:

- Instruktioner
- Stat

Genererade koncept:

- Uppdrag
- Övergång
- Minne
- Index

Som huvud:
- Samlingsspråk
- Fortran
-Algol
-Cobol
-Pascal
- C
- C++
-Ada
Som hjälpmedel:
- Python
- Ruby
- Java
- C#
-PHP
- Haskell (via monader)

Det är värt att notera att de flesta moderna språk stöder imperativ programmering i en eller annan grad. Även det rena funktionella språket Haskell kan skrivas imperativt.

Strukturerad programmering



Strukturerad programmering är ett programmeringsparadigm (som också ofta används som utvecklingsmetodik), vilket var det första stora steget i utvecklingen av programmering.

Grundarna av strukturerad programmering var sådana kända personer som E. Dijkstra och N. Wirth.

Pionjärspråken i detta paradigm var Fortran, Algol och B, senare efterträddes av Pascal och C.

Nyckelord:

Detta paradigm introducerar nya koncept som kombinerar vanliga mönster för att skriva imperativ kod.

Inom strukturerad programmering arbetar vi fortfarande med tillstånd och instruktioner, men konceptet med en sammansatt instruktion (block), gren- och loopinstruktioner introduceras.

Med dessa enkla ändringar är det möjligt att eliminera goto-satsen i de flesta fall, vilket förenklar din kod.

Ibland gör goto koden mer läsbar, vilket är anledningen till att den fortfarande används i stor utsträckning, trots alla påståenden från dess motståndare.

Grundläggande koncept:

- Blockera
- Cykel
- Förgrening

Språk som stöder detta paradigm:

Som huvud:
- C
-Pascal
- Grundläggande
Som hjälpmedel:
- C#
- Java
- Python
- Ruby
- JavaScript

Stöds delvis:
- Vissa makrosammanställare (via makron)

Återigen, de flesta moderna språk stödjer det strukturella paradigmet.

Procedurprogrammering



Återigen tvingade programvarans ökande komplexitet programmerare att leta efter andra sätt att beskriva beräkningar.

Faktum är att ytterligare koncept återigen introducerades som gjorde att vi kunde ta en ny titt på programmering.

Detta koncept var denna gång procedur.

Som ett resultat uppstod en ny metodik för att skriva program, som välkomnas till denna dag - det ursprungliga problemet är uppdelat i mindre (med hjälp av procedurer) och detta sker tills lösningen på alla specifika procedurer visar sig vara trivial.

Nyckelord:

En procedur är ett oberoende stycke kod som kan exekveras som en enda instruktion.

I modern programmering kan en procedur ha flera utgångspunkter (retur i C-liknande språk), flera ingångspunkter (med yield i Python eller statiska lokala variabler i C++), ha argument, returnera ett värde som ett resultat av dess exekvering, vara överbelastade i antal, eller typ av parametrar och mycket mer.

Grundläggande koncept:

- Procedur

Genererade koncept:

- Utmaning
- Argument
- Lämna tillbaka
- Rekursion
- Överbelastning

Språk som stöder detta paradigm:

Som huvud:
- C
- C++
-Pascal
- Objekt Pascal
Som hjälpmedel:
- C#
- Java
- Ruby
- Python
- JavaScript

Stöds delvis:
- Tidig grund

Det är värt att notera att flera ingångspunkter från alla dessa språk endast stöds i Python.

Modulär programmering



Återigen tvingade den ökande komplexiteten hos program utvecklare att dela sin kod. Den här gången räckte inte rutinerna till och den här gången introducerades ett nytt koncept - en modul.

Framöver kommer jag att säga att moduler inte heller visade sig kunna innehålla programvarans växande komplexitet med en otrolig hastighet, och därefter paket (detta är också modulär programmering), klasser (detta är redan OOP) och mallar (generaliserad programmering) ) dök upp.

Ett program som beskrivs i den modulära programmeringsstilen är en uppsättning moduler. Vad som finns inuti, klasser, imperativ kod eller rena funktioner, spelar ingen roll.

Tack vare moduler dök seriös inkapsling upp i programmering för första gången - det är möjligt att använda vilka enheter som helst inuti en modul, men inte visa dem för omvärlden.

Nyckelord:

En modul är en separat namngiven enhet i ett program som kombinerar andra programenheter som har liknande funktionalitet.

Till exempel inkluderar List.mod-filen klassen List
och funktioner för att arbeta med det - en modul.

Geometry-mappen som innehåller modulerna Shape, Rectangle och Triangle är också en modul, även om vissa språk skiljer konceptet av en modul och ett paket åt (i sådana språk är ett paket en uppsättning moduler och/eller en uppsättning andra paket).

Moduler kan importeras (anslutas) för att använda de enheter som deklareras i dem.

Grundläggande koncept:

- Modul
- Importera

Genererade koncept:

- Plastpåse
- Inkapsling

Språk som stöder detta paradigm:

Som huvud:
- Haskell
-Pascal
- Python
Som hjälpmedel:
- Java
- C#
- ActionScript 3

Stöds delvis:
- C/C++

Vissa språk introducerar separata abstraktioner för moduler, medan andra kan använda rubrikfiler (i C/C++), namnområden, statiska klasser och/eller dynamiska länkbibliotek för att implementera moduler.

Istället för en slutsats

I den här artikeln beskrev jag inte den nu populära objektorienterade, generiska och funktionella programmeringen. Helt enkelt för att jag har min egen, ganska radikala åsikt i denna fråga och jag inte ville starta en holivar. Åtminstone för stunden. Om ämnet visar sig vara användbart för samhället planerar jag att skriva flera artiklar som beskriver grunderna för vart och ett av dessa paradigm i detalj.

Dessutom skrev jag inget om exotiska paradigm, såsom automater, applikativ, aspekt/agent/komponentorienterad programmering. Jag ville inte göra artikeln väldigt stor, och igen, om ämnet är efterfrågat, kommer jag att skriva om dessa paradigm, kanske mer detaljerat och med kodexempel.

(GRUNDLÄGGANDE OM ALGORITMISERING OCH PROGRAMMERING)
  • Programmeringsparadigm och teknologier
    Syfte med kapitel 1. Studera begreppen "programmeringsparadigm", "programmeringsteknik". 2. Få en allmän förståelse för modern mjukvaruutvecklingsteknik. 3. Studera stadierna för att skapa ett strukturprogram. 4. Bekanta dig med livscykelmodeller för mjukvaruutveckling...
  • SE programmeringsparadigm
    SWEBOK innehåller ett antal programmeringsparadigm Se: Lavrishcheva E. M. Assembly-type programmeringsparadigm in software engineering // UKRProg-2014. Nr 2-3. sid. 121-133. . Dess programmeringsbootcamps inkluderar följande: procedurprogrammering(kurs CS1011 "Grundläggande programmering"),...
    (PROGRAMMERINGS- OCH TEKNIK FÖR PROGRAMMERING AV KOMPLEXA SYSTEM)
  • PROGRAMMERINGSPARADIGM
    MODULÄR PROGRAMMERING. GRUNDLÄGGANDE KONCEPT Ett av huvudproblemen med modern programmering är återanvändningen av moduler och komponenter (KPI). De kan vara program, subrutiner, algoritmer, specifikationer, etc., lämpliga för utveckling av ny, mer komplex mjukvara....
    (SOFTWARE ENGINEERING. PARADIGM, TEKNOLOGIER OCH CASE-VERKTYG)
  • Procedurparadigm
    Det processuella paradigmet var kronologiskt först och rådde länge. För närvarande ger det gradvis vika för det objektorienterade paradigmet, även om det fortfarande upptar ungefär hälften av mjukvaruutvecklingsmarknaden. Det tillämpas på alla nivåer av mjukvaruutveckling...
    (ALGORITMISERING OCH PROGRAMMERING)
  • Deklarativt och procedurminne
    Ett annat oberoende sätt för funktionell organisation av minnet, oberoende av andra, är dess uppdelning i deklarativ Och processuella. Dessa två metoder för att organisera minnet har en helt förståelig funktionsbas. En form av deklarativt minne är utformat för att stödja mentala...
    (Psykologi och pedagogik)
  • De allmänna programmeringsparadigm som växte fram i början av datorprogrammeringens era, inklusive paradigmen för tillämpad, teoretisk och funktionell programmering, är de mest stabila.

    Tillämpad programmering är föremål för en problemorientering, som återspeglar datoriseringen av information och beräkningsprocesser för numerisk bearbetning, studerade långt före tillkomsten av datorer. Det var här som ett tydligt praktiskt resultat snabbt dök upp. Naturligtvis i sådana områden skiljer sig programmering inte mycket från kodning, för det räcker som regel med operatörsstilen för att representera åtgärder. I praktiken av tillämpad programmering är det vanligt att lita på beprövade mallar och bibliotek av procedurer och undvika riskabla experiment. Noggrannheten och stabiliteten i vetenskapliga beräkningar värderas. Språket Fortran, en veteran inom applikationsprogrammering, började gradvis ge efter något inom detta område för Pascal, C, och på superdatorer till parallella programmeringsspråk som Sisal.

    Teoretisk programmering följer en publikationsinriktning som syftar till jämförbarhet av resultaten av vetenskapliga experiment inom programmering och datavetenskap. Programmering försöker uttrycka sina formella modeller, för att visa deras betydelse och grundläggande karaktär. Dessa modeller ärvde huvuddragen i relaterade matematiska begrepp och etablerade sig som ett algoritmiskt tillvägagångssätt inom datavetenskap. Önskemålet om bevis på konstruktioner och bedömning av deras effektivitet, rimlighet, korrekthet, korrekthet och andra formaliserade samband i programdiagram och texter låg till grund för strukturerad programmering och andra metoder för att uppnå tillförlitlighet i programutvecklingsprocessen, till exempel kompetent programmering . Standarddelmängderna av Algol och Pascal, som fungerade som arbetsmaterial för programmeringsteori, ersattes av mer bekväma applicerande språk för experiment, som ML, Miranda, Scheme, Haskell och andra. Nu får de sällskap av innovationer inom C och Java.

    Funktionell programmering bildades som en hyllning till den matematiska orienteringen i forskning och utveckling av artificiell intelligens och utvecklingen av nya horisonter inom datavetenskap. Ett abstrakt förhållningssätt till presentation av information, en lakonisk, universell stil att konstruera funktioner, klarhet i exekveringsmiljön för olika kategorier av funktioner, frihet för rekursiva konstruktioner, tillit till matematikerns och forskarens intuition, undvikande av bördan av för tidigt lösa principlösa problem med minnesallokering, förkastande av orimliga begränsningar av definitionernas omfattning - - allt detta är kopplat av John McCarthy till idén om Lisp-språket. Den omtänksamma och metodologiska giltigheten hos de första Lisp-implementeringarna gjorde det möjligt att snabbt samla erfarenhet av att lösa nya problem och förbereda dem för tillämpad och teoretisk programmering. För närvarande finns det hundratals funktionella programmeringsspråk fokuserade på olika klasser av uppgifter och typer av tekniska medel.

    De viktigaste programmeringsparadigmen har utvecklats i takt med att komplexiteten i de problem som löses har ökat. Det har skett en stratifiering av programmeringsverktyg och -metoder beroende på djupet och allmänningen av utarbetandet av de tekniska detaljerna i organisationen avesser. Olika stilar av programmering har dykt upp, de mest mogna är maskinorienterad, systemorienterad, logisk, transformerande och högpresterande parallell programmering.

    Maskinorienterad programmering kännetecknas av en hårdvaruansats för att organisera driften av en dator, som syftar till att få tillgång till alla hårdvarufunktioner. Fokus ligger på hårdvarukonfiguration, minnestillstånd, kommandon, kontrollöverföringar, sekvensering av händelser, undantag och överraskningar, enhetssvarstid och responsframgång. Assembly-språket har under en tid överskuggats som det visuella mediet av Pascal och C, även inom mikroprogrammering, men förbättringar av användargränssnittet kan återta sin position.

    Systemprogrammering har utvecklats under lång tid under trycket av service och specialarbete. Tillverkningsmetoden som är inneboende i sådant arbete bygger på en preferens för reproducerbara processer och stabila program utformade för upprepad användning. För sådana program är ett kompileringsbearbetningsschema, statisk analys av egenskaper, automatiserad optimering och kontroll motiverade. Detta område domineras av den imperativ-procedurmässiga programmeringsstilen, som är en direkt generalisering av operatörsstilen för tillämpad programmering. Det möjliggör viss standardisering och modulär programmering, men det förvärvar ganska komplexa strukturer, specifikationer, testmetoder, programintegreringsverktyg etc. De stränga kraven på effektivitet och tillförlitlighet möts av utvecklingen av professionella verktyg som använder komplex associativ semantisk heuristik tillsammans med metoder för syntaktiskt driven design och programgenerering. Den obestridliga potentialen hos sådana verktyg i praktiken begränsas av komplexiteten i utvecklingen - ett kvalifikationskrav uppstår.

    Högpresterande programmering syftar till att uppnå maximal prestanda när man löser särskilt viktiga problem. Naturreservatet för datorprestanda är parallella processer. Deras organisation kräver detaljerad övervägande av tidsrelationer och en icke-imperativ stil för att hantera åtgärder. Superdatorer som stöder högpresterande beräkningar krävde speciella systemprogrammeringstekniker. Grafnätverksmetoden för att representera system och processer för parallella arkitekturer har uttryckts i specialiserade parallella programmeringsspråk och superkompilatorer, anpassade för att kartlägga den abstrakta hierarkin av processer på uppgiftsnivå på den specifika rumsliga strukturen hos processorer av verklig utrustning.

    Logisk programmering uppstod som en förenkling av funktionell programmering för matematiker och lingvister som löser problem med symbolisk bearbetning. Särskilt attraktiv är möjligheten att använda icke-determinism som begreppsmässig grund, vilket befriar oss från för tidig ordning när vi programmerar bearbetningen av formler. Produktionsstilen för att generera processer med avkastning är tillräckligt naturlig för ett språkligt förhållningssätt för att klargöra formaliserad kunskap av experter och minskar startbarriären.

    Transformationell programmering kombinerade metodologiskt teknikerna för programoptimering, makrogenerering och partiell beräkning. Det centrala begreppet inom detta område är informationslikvärdighet. Det visar sig i att definiera transformationer av program och processer, i att söka efter kriterier för tillämpligheten av transformationer, i att välja en strategi för deras användning. Blandade beräkningar, uppskjutna åtgärder, lat programmering, försenade processer, etc. används som metoder för att effektivisera informationsbehandlingen under vissa ytterligare identifierade förhållanden.

    Omfattande programmeringsmetoder är ett naturligt svar på radikala förbättringar av prestanda hos hårdvara och datornätverk. Det finns en övergång av datorverktyg från klassen tekniska verktyg till klassen hushållsapparater. Marken har vuxit fram för att uppdatera tillvägagångssätt för programmering, liksom möjligheten att rehabilitera gamla idéer som var dåligt utvecklade på grund av datorernas låga teknik och prestanda. Det är av intresse att forma forsknings-, evolutionära, kognitiva och anpassningsmetoder för programmering som skapar utsikter till rationell utveckling av verkliga informationsresurser och datorpotential.

    En forskningsmetod med en pedagogisk spelstil av professionell, pedagogisk och amatörprogrammering kan ge impulser till att söka uppfinningsrikedom för att förbättra programmeringsteknik som inte kunde hantera krisfenomen på den tidigare elementbasen. Det evolutionära tillvägagångssättet med en mobil stil att förfina program är ganska tydligt synligt i konceptet objektorienterad programmering, som gradvis utvecklas till ämnesorienterad programmering. Att återanvända definitioner och ärva objektegenskaper kan förlänga livscykeln för felsökta informationsmiljöer, öka driftsäkerheten och användarvänligheten.

    Ett kognitivt tillvägagångssätt med en interoperabel stil av visuell-gränssnittsutveckling av öppna system och användning av nya audio-videoverktyg och icke-standardiserade enheter öppnar upp sätt att förbättra uppfattningen av komplex information och förenkla dess adekvata bearbetning.

    Ett adaptivt tillvägagångssätt med en ergonomisk stil av individualiserad design av personliga informationssystem ger datavetare möjlighet att kompetent programmera, organisera och stödja tekniska processer i realtid som är känsliga för den mänskliga faktorn. Utvecklingsriktningen för programmeringsparadigmet återspeglar en förändring i kretsen av personer som är intresserade av utveckling och tillämpning av informationssystem. Många viktiga begrepp för programmeringspraktik, såsom händelser, undantag och fel, potential, hierarki och ortogonalitet hos konstruktioner, extrapolering och programtillväxtpunkter, kvalitetsmätning m.m. inte nått en tillräcklig nivå av abstraktion och formalisering. Detta gör att vi kan förutsäga utvecklingen av programmeringsparadigm och välja utbildningsmaterial för framtiden för komponentprogrammering. Om traditionella medel och metoder för att välja återanvändbara komponenter var föremål för modularitetskriteriet, förstått som det optimala valet av minimal koppling med maximal funktionalitet, tillåter den moderna elementbasen driften av flerkontaktsenheter som utför enkla operationer. Men vi kan bekanta oss med alla dessa typer och programmeringsparadigm med till och med Wikipedia. För närvarande finns det ett mycket brett utbud av programmeringsutveckling i olika riktningar.

    Redaktörens val
    , Afghanistan, Tadzjikistan, Kirgizistan, Kazakstan, Turkmenistan, Ryssland, Turkiet, Kina, etc. Distribution...

    Georgia är hem för gästvänliga och vänliga människor som alltid hjälper till. Efter att ha kommit till detta soliga land behöver du inte oroa dig för att du kommer att ha...

    Betyg: / 0 Detaljer Visningar: 3084 Programmeringsparadigm Vad är ett paradigm i allmänhet? Man kan säga att detta är...

    Armeniska språket () är ett indoeuropeiskt språk som vanligtvis klassificeras som en separat grupp, mer sällan kombinerat med grekiska och frygiska språk....
    GADES En av de tre sönerna till Cronus, bror till himmelens herre Zeus och härskaren över havet Poseidon, även kallad Pluto ("rikedom", dvs....
    Analys av kraniometriska (det vill säga relaterade till mätningar av skallen) indikatorer för moderna människor indikerar att alla levande ...
    Jag var på besök och såg med egna ögon "världens första" zigenaralfabet från Ukraina. Jag trodde att den första platsen på listan över mina favoritböcker...
    Varje person har upplevt en skuldkänsla minst en gång i livet. Orsaken kan vara en mängd olika orsaker. Allt beror specifikt på...
    När han lekte på stranden av Tunguskaflodens kanal hittade han en tändsticksask fylld med stearin, inuti vilken det låg ett papper, mörkt...