Drift (programmering)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 19 januari 2017; kontroller kräver 7 redigeringar .

En operation  är en konstruktion i programmeringsspråk , som i skrift liknar matematiska operationer, det vill säga ett speciellt sätt att registrera vissa åtgärder.

De vanligaste är aritmetiska, logiska och strängoperationer . Till skillnad från funktioner är operationer ofta grundläggande delar av språket och betecknas med olika skiljetecken snarare än alfanumeriska tecken; de har en speciell infixsyntax och icke-standardiserade regler för överföring av argument. Terminologin skiljer sig dock något från språk till språk.

Användning och instruktion

Det engelska ordet operator , som motsvarar termen "operation" , översätts ibland felaktigt som "operatör". I själva verket (av historiska skäl) betyder den ryska termen "operatör" detsamma som " instruktion " , vilket motsvarar det engelska uttalandet [1] . Förvirringen förvärrades av att i C är tilldelning och inkrement/minskning både operatörer och operationer.

Funktion och funktion

Faktum är att en operation är samma funktion , men skriven på ett speciellt sätt. Av denna anledning är det vettigt att kunna definiera operationer på godtyckliga typer på samma sätt som metoder  , så att du kan arbeta med dem på samma sätt som du skulle göra med elementära typer. Denna funktion kallas " operatörsöverbelastning " och finns på de flesta 4:e och 5 :e generationens språk . På sådana språk ersätter översättaren faktiskt ett anrop till motsvarande funktion istället för att utföra en operation.

Operationstyper

Operationer delas med antalet accepterade argument i:

Syntax för operationer

Eftersom operationer i notation liknar algebraiska uttryck finns det tre syntaxalternativ för dem, liksom för de senare:

För binära och ternära (med 3 operander) operationer, i den överväldigande majoriteten av fallen, används infixnotation - av den enkla anledningen att det är accepterat i matematik och mest bekant för de flesta. Det finns ingen infixnotation för unära operationer, och prefixnotation används vanligtvis.

Lista över typiska operationer

Operationer flyttar vanligtvis från språk till relaterade språk - till exempel finns C -språkoperationer i C++ , Java , JavaScript och många andra.

Tecken Drift pågår Programmeringsspråk
a = bellera := b uppdrag nästan alla
Aritmetisk
a + b tillägg av argument nästan alla
a - b subtraktion nästan alla
-a tecken byte nästan alla
a / b,a div b division nästan alla
a % b,a mod b resten av divisionen (modulo division) nästan alla
a++
a--
öka med 1 med tilldelning ( inkrement )
minska med 1 med tilldelning (minska)
C , Java , PHP
a ^ beller a ^^ bellera ** b exponentiering BASIC , Fortran , Ruby , Python , Haskell (alla 3)
hjärngymnastik
a & b, eller a && b, ellera and b konjunktion (logisk multiplikation) nästan alla
a | b, eller a || b, ellera or b disjunktion (logiskt tillägg)
~a, eller !a, ellernot a inversion (logisk negation)
a = bellera == b

a <> beller a /= bellera != b

jämställdhetstest

ojämlikhetstest

a > b,a >= b

a < b,a <= b

större än, större än eller lika med

mindre än, mindre än eller lika med

a ? b : c ternär villkorlig operation (om villkor a är sant är hela uttrycket lika med b , annars c ) C, C++, Java, PHP
Sträng
a + beller a & beller a.b(PHP) eller a..b(Lua) eller a ++ b(Haskell) sammanfogning (sammanfoga) nästan alla
Bitvis
a & b, a och b (Pascal, Kotlin), a /\ b (Prolog), a .&. b (Haskell) bitvis konjunktion C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prolog , Haskell
en | b, a eller b (Pascal, Kotlin), a \/ b (Prolog), a .|. (Haskell) Bitvis disjunktion
~a, inte a (Pascal), inv a (Kotlin), \a (Prolog) bitvis negation C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prolog
a^b, xor (Pascal, Kotlin) XOR C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin
a << b, a shl b (Pascal, Kotlin)


a >> b, a shr b (Pascal, Kotlin)

Bitskifte vänster


Bit shift höger

Se även

Anteckningar

  1. Översättning av datortermer. Del 1. Processor . Tillträdesdatum: 7 december 2010. Arkiverad från originalet 23 september 2013.