Specifikacija motornih ulja prema API. API klasifikacije Video

Opisi se koriste za tumačenje svakog od identifikatora; ne moraju biti popraćeni dodjelom memorije povezane s identifikatorom. Opisi izgledaju

spec-descriptions opt spec-list opt ​​​​;
funkcija-definicija
specifikacije-veze

Deskriptori u popisu deskriptora (§R.8) sadrže identifikatore koji se opisuju. Konstrukt specifikacija-opis može biti odsutan samo u definiciji funkcije (§R.8.3) ili u opisu funkcije. Deklarativni popis može biti prazan samo kada se deklarira klasa (§R.9) ili enumeracija (§R.7.2), tj. kada je opis-specifikacija specifikacija-klase ili specifikacija-nabrajanja. Konstrukcija description-asm objašnjena je u §R.7.3, a specifikacijske veze u §R.7.4. Opis se javlja unutar definiranog opsega (§R.3.2), pravila opsega dana su u §R.10.4.

R.7.1 Specifikacije

U opisu se mogu koristiti sljedeće specifikacije:

specifikacija-opis:
memorija-klasa-spec
tip-spec
tip-predložak-specifikacija
specifikacije-opisi:
specifikacija-opisi opt specifikacija-opisi

Najduži niz specifikacijsko-opisnih konstrukcija, koji je moguće ime tipa, tvori specifikacijsko-opisnu konstrukciju u opisu. Redoslijed mora biti dosljedan, što je objašnjeno u nastavku. Na primjer,

statički PC; // pogreška: nema imena

Ovdje je deklaracija statičkog Pc nezakonita jer nije navedeno ime statičke varijable tipa Pc. Imati varijabla tipa int s imenom Pc, potrebno je navesti int specifikaciju tipa kako bi se naznačilo da se ime Pc typedef (re)definira, umjesto da jednostavno Pc bude jedan od elemenata niza konstrukata opisa i specifikacije, npr.

void f(const Pc); // void f(char* const)
void g(const int Pc); // void g(const int)

Ističemo da budući da se signed, unsigned, long i short prema zadanim postavkama tretiraju kao int, name-typedef konstrukcija koja se pojavljuje nakon jedne od navedenih specifikacija tipa mora navesti naziv koji treba (re)definirati, npr.

void h(nepotpisani Pc); // void h(unsigned int)
void k(unsigned int Pc); // void k(unsigned int)

R.7.1.1 Specifikacije klase memorije

Specifikacije klase memorije mogu biti:

specifikacija klase memorije:

Specifikacije auto i register mogu se koristiti samo za nazive objekata koji su opisani u bloku (§R.6.3) ili za formalne parametre (§R.8.3). Auto specifikacija je gotovo uvijek suvišna i rijetko se koristi, tako da se auto koristi za eksplicitno odvajanje izjave deklaracije od izjave izraza (§R.6.2).

Opis registra je automatski opis, koji govori prevoditelju da će se opisane varijable koristiti prilično intenzivno. Savjet se može ignorirati, au mnogim implementacijama se ignorira kada se uzme adresa varijable.

Opis objekta smatra se definicijom osim ako ne sadrži vanjsku i inicijalizacijsku specifikaciju (§R.3.1).

Definicija uzrokuje dodjeljivanje odgovarajuće veličine memorije i izvođenje odgovarajuće inicijalizacije (§R.8.4).

Statičke i vanjske specifikacije mogu se primijeniti samo na nazive objekata ili funkcija ili na anonimne unije. Opisi funkcija sa statičkom specifikacijom ili formalni parametri sa statičkom ili vanjskom specifikacijom nisu dopušteni unutar bloka. Statički članovi klase su opisane u §R.9.4. Vanjska specifikacija nije važeća za članove klase.

Ime sa statičkom specifikacijom podliježe internom povezivanju. Objekti deklarirani kao const podložni su unutarnjem povezivanju osim ako nisu deklarirani s vanjskim povezivanjem. Ime s vanjskom specifikacijom podliježe vanjskom povezivanju osim ako prethodno nije deklarirano s unutarnjim povezivanjem. Naziv s opsegom datoteke bez specifikacije memorijske klase podložan je vanjskom povezivanju osim ako prethodno nije deklariran s unutarnjim povezivanjem ili specifikacijom const. U smislu vezivanja za funkcije koje nisu članice, inline specifikacija je ekvivalentna statičnoj (§R.3.3). Za jedan naziv moraju se slagati sve njegove obvezujuće specifikacije. Na primjer,

statički char* f(); // f() ima unutarnje vezanje
char* f() // f() je još interni
char* g(); // g() ima vanjsko vezanje
static char* g() // pogreška: obvezujuća kontradikcija
statički int a; // `a" ima unutarnje vezanje
int a; // pogreška: druga definicija
statički int b; // `b" ima unutarnje vezanje
extern int b; // `b" je još uvijek interno
int c; // `c" ima vanjsku vezu
statički int c; // pogreška: obvezujuća kontradikcija
extern int d; // `d" ima vanjsko uvezivanje
statički int d; // pogreška: obvezujuća kontradikcija

Ime nedefinirane klase može se koristiti u vanjskoj deklaraciji. Međutim, takav se opis ne može koristiti prije definiranja klase, na primjer,

g(a); // pogreška: S je nedefiniran
f(); // pogreška: S je nedefiniran

R.7.1.2 Specifikacije funkcija

Neke specifikacije mogu se koristiti samo za opisivanje funkcija.

Inline specifikacija govori prevoditelju da zamijeni tijelo funkcije umjesto uobičajene implementacije poziva funkcije. Savjet se može zanemariti. U slučaju funkcija koje nisu članice, inline specifikacija dodatno uspostavlja unutarnje vezanje za funkciju (§R.3.3). Funkcija (§R.5.2.2, §R.8.2.5) definirana u deklaraciji klase ima inline specifikaciju prema zadanim postavkama.

Funkcija članica s inline specifikacijom mora imati potpuno istu definiciju u svakoj jedinici prevođenja u kojoj se pojavljuje.

Funkcija članica ne mora biti eksplicitno deklarirana s inline specifikacijom u deklaraciji klase da bi se tretirala kao zamjena. Ako nije bilo ugrađene specifikacije, vezanje će biti vanjsko osim ako se definicija s ugrađenom specifikacijom ne pojavi prije prvog poziva funkcije.

inline int g(); // X::g() ima interno vezanje

int i = p-›f(); // sada je X::f() vanjska granica

inline int X::f() // pogreška: poziv prije definicije

inline int X::h() // X::h() je sada interno vezan

Virtualna specifikacija može se koristiti samo u deklaracijama nestatičkih funkcija članica u deklaracijama klasa (vidi §R.10.2).

R.7.1.3 Specifikacija Typedef

Typedef deklaracije određuju identifikatore koji se kasnije mogu koristiti za označavanje osnovnih ili izvedenih tipova. Specifikacija typedef nije dopuštena u definiciji funkcije (§R.8.3).

Unutar opsega (§R.3.2) typedef deklaracije, svaki identifikator koji se pojavljuje u dijelu bilo kojeg od deskriptora postaje sintaktički ekvivalent funkcijskoj riječi i označava tip povezan s tim identifikatorom, kao što je opisano u §R.8. Dakle, typedef-name je sinonim za drugu vrstu. Za razliku od deklaracije klase (§R.9.1), typename ne dodaje novi tip. Na primjer, nakon opisivanja

dizajne

su pravni opisi, udaljenost je tipa int, a metricp je tipa "pokazivač na int".

Koristeći typedef, možete redefinirati ime tako da ono ponovno označava tip koji je već spomenut, čak i u opsegu u kojem je tip izvorno deklariran, na primjer,

typedef struct s (/*… */) s;

Neimenovana klasa koja je definirana u typedef-u uzima kao svoje ime ime korišteno u typedef-u, npr.

typedef struktura (/*… */) S; // ime strukture postalo je S

Typedef se ne može koristiti za redefiniranje imena tipa deklariranog u istom opsegu za označavanje drugog tipa, npr.

typedef int kompleks; // pogreška: nadjačaj

Isto tako, ne možete definirati klasu s imenom tipa definiranog u istom opsegu tako da označava drugi tip, npr.

kompleks klasa (/*… */); // pogreška: nadjačaj

Typedef koji označava klasu je ime klase (§R.9.1). Sinonim se ne može koristiti iza sljedećih prefiksa: klasa, struktura i unija, kao ni u imenima konstruktora i destruktora u opisu same klase, npr.


S a = T(); // Dobro

R.7.1.4 Specifikacija predloška tipa

Specifikacija predloška tipa koristi se za specificiranje obitelji tipova ili funkcija (vidi §R.14).

R.7.1.5 Specifikacija prijatelja

Specifikacija prijatelja koristi se za specificiranje pristupa članovima klase (vidi §R.11.4).

R.7.1.6 Specifikacija tipa

Specifikacije vrste uključuju:

vrsta specifikacije:
ime jednostavnog tipa
klasa-spec
specifikacija-nabrajanja
specifikacija složenog tipa

Prilikom deklariranja objekta, servisne riječi const i volatile mogu se dodati bilo kojoj pravnoj specifikaciji tipa. U svim ostalim slučajevima u opisu ne smije biti prisutna više od jedne specifikacije tipa. Objekt sa specifikacijom const može se inicijalizirati, ali se njegova vrijednost ne smije kasnije mijenjati. Objekt sa specifikacijom const, osim ako nije izričito deklariran kao extern, nije podložan vanjskom povezivanju i mora se inicijalizirati (§R.8.4, §R.12.1). Konstantni cijeli broj inicijaliziran konstantnim izrazom može se koristiti u konstantnom izrazu (§R.5.19). Svaki element niza s const specifikacijom ima istu specifikaciju, a svaki nestatički nefunkcionalni član objekta klase s const specifikacijom sam se smatra const (§R.9.3.1). Objekt tipa bez konstruktora ili destruktora koji ima specifikaciju const može se smjestiti u memoriju samo za čitanje. Pokušaj pisanja u bilo koji dio takvog objekta ili će dovesti do posebne adresne situacije ili će proći bez traga, kao da objekt nema const specifikaciju.

Ne postoji objašnjenje neovisno o implementaciji za objekte s nepostojanom specifikacijom. Služi kao savjet prevoditelju da izbjegne previše optimizacije povezane s ovim objektom, budući da se vrijednost objekta može promijeniti na načine skrivene od prevoditelja. Svaki element niza s nepostojanom specifikacijom ima istu specifikaciju, a svaki nestatički nefunkcionalni član objekta klase s nepostojanom specifikacijom sam se smatra nepostojanim (§R.9.3.1).

Ako type-spec nije prisutan u deklaraciji, pretpostavlja se da je naveden kao int.

ime jednostavnog tipa:
puno ime-klase
kvalificirano ime-tipa

Ne možete navesti više od jedne duge ili kratke funkcijske riječi s int. Također se mogu koristiti pojedinačno, u kojem slučaju se tip smatra int. Servisna riječ dugo može se pojaviti zajedno s dvostruko. Ne možete navesti više od jedne predznačene ili nepodpisane funkcijske riječi s char, short, int ili long. Također se mogu koristiti pojedinačno, u kojem slučaju se tip smatra int. Specifikacija s predznakom označava da su char objekti i bitna polja potpisani; za ostale cjelobrojne tipove ova je specifikacija suvišna.

Konstrukti specifikacije klase i specifikacije nabrajanja definirani su u §R.9 odnosno §R.7.2.

specifikacija složenog tipa:
klasa-riječ naziv-klase
klasa-identifikator funkcija-riječ
klasa-riječ:

Ako je dan identifikator, specifikacija složenog tipa ga opisuje kao naziv klase (vidi §R.9.1).

Ako je definirano ime koje je opisano specifikacijom unije, tada mora biti definirano kao unija. Ako je definirano ime koje je opisano specifikacijom klase, tada se mora definirati pomoću specifikacije klase ili strukture. Ako je definirano ime koje je opisano specifikacijom strukture, ono mora biti definirano specifikacijom klase ili strukture. Nazivi ugniježđenih tipova (§R.9.7) moraju biti kvalificirani imenom klase koja ih okružuje:

kvalificirano ime-tipa:
ime-klase:: ime-kvalificiranog-tipa
puno ime klase:
kvalificirano ime-klase
:: kvalificirano-ime-klase
kvalificirano ime-klase:
ime-klase:: kvalificirano ime-klase

Ime kvalificirano imenom-klase mora biti tip definiran u toj klasi ili u osnovnoj klasi te klase. Kao i obično, ime deklarirano u izvedenoj klasi čini članove s tim imenom iz osnovnih klasa nevidljivima (vidi §R.3.2).

R.7.2 Opis nabrajanja

Nabrajanje je zaseban cjelobrojni tip (§R.3.6.1) s imenovanim konstantama. Njegovo ime u svom opsegu postaje konstrukt imena nabrajanja, tj. služi kao rezervirana riječ.

enum-name:
specifikacija-nabrajanja:
enum identifikator opt ( enum-list )
enum-list:
popis-stavka
popis-popis, popis-stavka
enum-item:
identifikator = konstantni izraz

Svi identifikatori u popisu nabrajanja smatraju se deklariranim konstantama i mogu se pojaviti gdje god su konstante potrebne. Ako nije bilo elemenata nabrajanja sa =, tada vrijednosti konstanti počinju od nule i uzastopno se povećavaju za jedan dok se pomiču na popisu s lijeva na desno. Ako se element nabrajanja susreće sa =, tada njegov identifikator preuzima zadanu vrijednost, a naredni identifikatori bez dijela za inicijalizaciju dobit će rastuće vrijednosti, počevši od zadanog. Vrijednost elementa enumeracije mora biti tipa int ili vrijednost koja se može pretvoriti u int korištenjem standardnih cjelobrojnih konverzija (§R.4.1).

Nazivi elemenata nabrajanja moraju se razlikovati od naziva običnih varijabli i drugih elemenata nabrajanja istog opsega. Vrijednosti elemenata nabrajanja ne moraju se međusobno razlikovati. Element nabrajanja smatra se opisanim od trenutka kada se pojavi njegov identifikator ili vrijednost inicijalizacije (ako postoji). Na primjer, u definicijama

vrijednosti a, c i d date su kao 0, b i e kao 1, a f kao 3.

Svaki enum je integralni tip, koji se razlikuje od svih ostalih integralnih tipova. Tip elementa nabrajanja je dano nabrajanje. Vrijednost elementa nabrajanja ili objekta tipa nabrajanja pretvara se u cijeli broj pomoću standardnih pretvorbi cijelog broja (§R.4.1). Na primjer, u sljedećem isječku:

enum boja (crvena, žuta, zelena=20, plava);

color je definiran kao cjelobrojni tip koji opisuje različite boje, col je definiran kao objekt tog tipa, a cp je definiran kao pokazivač na objekt tog tipa. Moguće vrijednosti za objekt tipa boja su crvena, žuta, zelena, plava. Ove se vrijednosti mogu pretvoriti u cjelobrojne vrijednosti 0, 1, 20 i 21. Budući da je svaki enum zaseban tip, objektu tipa boja mogu se dodijeliti samo vrijednosti tipa boja, npr.

boja c = 1; // pogreška: neslaganje tipa
// nema pretvorbe iz int u boju
int i = žuto; // ok: žuto se pretvara u int s vrijednošću 1
// standardna pretvorba cijelog broja

Vidi također §R.18.3.

Članovi enumeracije definirani u klasi (§R.9) unutar su opsega te klase i može im se pristupiti izvan funkcija članova te klase samo eksplicitnom kvalifikacijom imenom klase (§R.5.1). Samo ime enum tipa je lokalno za tu klasu (§R.9.7), npr.

opis-popis:
opis-popis opis

Zahtijevano vezanje navedeno je korištenjem string literala. Njegova je svrha definirana implementacijom. Ali sve implementacije moraju omogućiti vezanje na funkciju u jeziku C ("C") i funkciju u jeziku C++ ("C++"). Zadano vezanje postavljeno je na "C++", na primjer,

složeni sqrt(kompleksni); // zadano vezanje na C++
dvostruko sqrt(dvostruko); // vezanje na C

Komunikacijske specifikacije mogu se ugniježditi. Specifikacija komunikacije ne specificira opseg. Specifikacija veze može se pojaviti samo u opsegu datoteke (§R.3.2). Specifikacija vezanja za klasu odnosi se na objekte opisane u njoj i funkcije koje nisu članice. Obvezujuća specifikacija koja se odnosi na funkciju također se primjenjuje na sve objekte i funkcije opisane u njoj. Opis veze koji sadrži niz nepoznat implementaciji smatra se netočnim.

Ako funkcija ima više od jedne specifikacije veze, one moraju biti dosljedne, tj. postavite isti doslovni niz. Opis funkcije bez specifikacije veze ne smije prethoditi prvoj specifikaciji veze za tu funkciju. Funkcija se može deklarirati bez navođenja obvezujuće specifikacije čak i nakon što je obvezujuća specifikacija eksplicitno navedena, ali vezanje izričito navedeno u ranijoj deklaraciji neće biti uklonjeno takvom deklaracijom funkcije.

Od skupa preopterećenih funkcija (§R.13) s danim imenom, najviše jedna može imati C vezanje, vidi §R.7.4.

Vezanje se može postaviti za objekte, na primjer:

int _flsbuf(unsigned,_iobuf*);

Kada je specificirana komunikacijska specifikacija, funkcije i objekti mogu se opisati kao statični unutar (). Za takve funkcije ili objekte, naredba vezanja se zanemaruje. U suprotnom, funkcija deklarirana prilikom navođenja veze tretira se kao da je eksplicitno deklarirana kao extern, na primjer, drugi opis u nastavku je pogrešan (§R.7.1.1):

static double f(); // pogreška

Objekt opisan unutar konstrukcije

još uvijek se smatra određenim, a ne samo opisanim.

Povezivanje C++ objekata s objektima definiranim u drugim jezicima, kao i obrnuto vezanje, ovisi o jeziku i implementaciji. Takvo povezivanje moguće je samo ako su algoritmi za smještaj objekata u memoriju dovoljno slični za dva jezika.

Ako se naziv programskog jezika koristi za određivanje odnosa u literalnom nizu iz specifikacije odnosa, preporučuje se da se pravopis tog naziva kopira iz dokumenta koji definira dati jezik npr. Ada (ne ADA) i Fortran (ne FORTRAN).

odjelu 304

Laboratorijski rad br. 2

u predmetu "Programiranje"

Ispunio učenik 315 gr.

Startseva A.V.

Provjerio sam izv. odjelu 304

Bakumenko N.S.

________________________

Predmet:"SpecifikacijaS++"

Cilj rada: Naučiti napisati opis glavnih karakteristika programa ili potprograma. Specifikacija uvijek uključuje sljedeće karakteristike: iskaz problema koji se rješava danim programom ili potprogramom, opis početnih podataka, opis rezultata, opis posebnih situacija.

Stanje:

9.59. Prijedlog je dat. Odredite broj slova "O" u njemu.

9.101.Riječ je data. Zamijenite treće i posljednje slovo.

9.155.Riječ sadrži samo dva ista slova. Nađi ih.

Izvođenje:

Ime:Vvod

Opis: Funkcija čita vrijednost znaka s konzole.

Početni podaci:

Ime: 1) simbol; 2) S;

Opis: 1) varijabla kojoj se dodjeljuje specifična vrijednost(neki simbol); 2) dana rečenica ili riječ - parametar potprograma, prenesen iz glavnog programa u obliku skupa znakova.

Vrsta i opseg: 1)Char, bilo koji znakovi; 2) niz, bilo koji simboli

Proizlaziti: Funkcija čita podatke koje korisnik unese s tipkovnice.

Izvanredni opisi:

Opis: 1) uneseni su podaci krive vrste 2) uneseno je više podataka nego što je potrebno za program

Liječenje: 1), 2) - prikazat će se poruka da su otkrivene pogreške tijekom izrade programa.

Ime:Vuvod

Opis: Funkcija ispisuje cijeli broj, vrijednost znaka ili niz s konzole.

Početni podaci:

Ime: 1) n 2) s; 3) h.

Opis: n, s, h. - varijable kojima se pridružuje rezultat funkcije (navedeni zadatak). 1) Potprogram vraća jednu vrijednost - broj slova "O" u datoj rečenici. 2) Potprogram vraća niz tipa char, u kojem su drugi i zadnji element zamijenjeni (riječ u kojoj su treće i zadnje slovo zamijenjeni). 3) Potprogram vraća jednu vrijednost - slovo , koji se ponavlja u riječi.

TipIdomet: 1) int; 2) niz; 3) char.

Proizlaziti: funkcija prikazuje rezultat programa, odnosno prikazuje varijable n, s, h.

Ime: Funk

Opis: Definira broj slova "O" u datoj rečenici.

Početni podaci:

Ime: 1) S; 2) simbol, 3) n

Opis: 1) Izvorni niz (dana rečenica) je parametar potprograma, prenesen iz glavnog programa u obliku skupa znakova. 2) varijabla kojoj je dodijeljen simbol “o”.

Vrsta i opseg: 1) niz, bilo koji znakovi. 2) Znak, o simbol.

Proizlaziti:

Ime: cout

Opis: Potprogram ispisuje vrijednost varijable n.

Vrsta i opseg Int

Izvanredni opisi

Opis: rečenica ne sadrži slovo o.

Liječenje: ispisuje se poruka da rečenica ne sadrži slovo o.

Ime: Funk1

Opis: Funkcija mijenja treće i zadnje slovo riječi koju je odredio korisnik.

Početni podaci:

Ime: 1) S; 2) l, k 3) temp; 4)s

Opis: 1) Izvorni niz (određena riječ) – parametar potprograma, prenesen iz glavnog programa u obliku skupa znakova. 2) varijabla kojoj se dodjeljuje vrijednost drugog elementa niza. 2) varijable kojima su dodijeljeni indeksi trećeg i zadnjeg slova date riječi. 3) varijabla kojoj se prvo dodjeljuje vrijednost drugog elementa niza, zatim se ponovno dodjeljuje dok se program izvodi.

Vrsta i opseg: 1) niz, bilo koji simboli; 2) int 3) int.

Proizlaziti:

Ime: cout

Opis: Potprogram ispisuje vrijednost varijable s

Vrsta i opseg: niz.

Izvanredni opisi

Opis: 1) niz nije točno naveden, 2) indeksi su postavljeni na pogrešan tip.

Liječenje: 1), 2) - prikazat će se poruka da su otkrivene pogreške tijekom izrade programa.

Ime: Func2

Opis: Funkcija pronalazi dva identična slova sadržana u zadanoj riječi.

Početni podaci:

Ime: 1) S; 2) h.

Opis: 1) Izvorni niz (određena riječ) – parametar potprograma, prenesen iz glavnog programa u obliku skupa znakova.

Vrsta i opseg: 1) char

Proizlaziti:

Ime: cout

Opis: Potprogram ispisuje vrijednost varijable h.

Vrsta i opseg: char.

Izuzetne situacije:

Opis: 1) riječ ne sadrži identična slova 2) riječ se sastoji od svih identičnih slova 3) niz nije točno naveden

Liječenje: 1), 2) - prikazuje se broj “-1”. 3) prikazat će se poruka da su otkrivene pogreške tijekom izrade programa.

Specifikacija zajedničkog jezika CLS

Kao što je poznato, u različiti jezici programiranja, iste programske konstrukcije izražene su na svoj jedinstveni način specifičan za jezik. Na primjer, u C#, ulančavanje nizova označeno je upotrebom znaka plus (+), dok se u VB-u, ampersand (&) obično koristi u tu svrhu. Čak i ako je isti programski idiom izražen na dva različita jezika (na primjer, funkcija koja ne vraća vrijednost), vrlo je velika vjerojatnost da će sintaksa izgledati vrlo različito.

Kao što je već pokazano, takve male varijacije u sintaksi za .NET runtime su beznačajne zbog činjenice da odgovarajući kompajleri (u u ovom slučaju- csc.exe i vbc.exe) generiraju sličan skup CIL instrukcija. Međutim, jezici se također mogu razlikovati po ukupnoj razini funkcionalnosti. Na primjer, u nekim .NET jezicima može, ali i ne mora biti ključna riječ za predstavljanje nepotpisanih podataka i jesu li tipovi pokazivača podržani ili ne. Zbog svih mogućih varijacija, bilo bi sjajno imati neke osnovne zahtjeve koje bi svi jezici koji podržavaju .NET morali zadovoljiti.

CLS (Common Language Specification - zajednička specifikacija za programske jezike) je upravo skup pravila koja detaljno opisuju minimalni i potpuni skup funkcionalnost, koju svaki pojedini .NET prevodilac mora nužno podržavati kako bi generirao takve programski kod, koje bi mogao opsluživati ​​CLR i kojima bi se u isto vrijeme moglo pristupiti na jedinstven način svim jezicima koji ciljaju .NET platformu. Na mnogo načina, CLS se može smatrati jednostavno podskupom svih funkcionalnosti definiranih u CTS-u.

U konačnici, CLS je skup pravila kojih se kreatori prevoditelja moraju pridržavati ako žele da njihovi proizvodi glatko funkcioniraju u .NET svijetu. Svako od ovih pravila ima jednostavan naziv (na primjer, "CLS pravilo broj 6") i opisuje kako se primjenjuje na one koji pišu prevoditelje i one koji će (na bilo koji način) s njima komunicirati. Najvažnija stvar kod CLS-a je pravilo 1, govoreći to CLS pravila primjenjuju se samo na one dijelove tipa koji su dostupni izvan sklopa u kojem su definirani .

Ono što se može (i treba) zaključiti iz ovog pravila je da se sva druga pravila u CLS-u ne primjenjuju na logiku koja se koristi za izgradnju internih radnih dijelova tipa .NET. Jedini aspekti tipa koji moraju biti u skladu s CLS-om su oni sami definicije članova(tj. konvencije imenovanja, parametri i tipovi povrata). Unutar logike implementacije člana, može se koristiti bilo koji broj tehnika koje nisu u skladu s CLS-om, budući da to neće igrati nikakvu ulogu za vanjski svijet.

Na primjer, uzmite osjetljivost na velika i mala slova. IL je osjetljiv na velika i mala slova. Programeri koji pišu na jezicima koji razlikuju velika i mala slova u velikoj mjeri koriste fleksibilnost koju ova osjetljivost na velika i mala slova pruža pri odabiru imena varijabli. Međutim, jezik Visual Basic 2010 ne razlikuje velika i mala slova. Specifikacija CLS-a zaobilazi ovaj problem specificiranjem da bilo koji kod koji je usklađen s CLS-om ne smije uključivati ​​parove imena koji se razlikuju samo u velikim i velikim slovima. Na taj način kod Visual Basica 2010 može raditi s kodom kompatibilnim s CLS-om.

Ovaj primjer ilustrira da CLS radi na dva načina.

Maziva su se počela koristiti davno prije naše ere. I ako su se ranije koristile biljne masti i masti životinjskog podrijetla, onda su ih od 60-ih godina prošlog stoljeća zamijenili naftni derivati. Nakon toga započeo je aktivan razvoj i usavršavanje motornih ulja, a prije 70-ak godina pojavili su se prvi polimerni modifikatori viskoznosti, zahvaljujući kojima su se ubrzo pojavile različite klase i varijante motornih ulja koja zadovoljavaju temperaturni uvjeti određeno doba godine, a pojavile su se i vrste maziva za sva godišnja doba.

Od tada su sastav i tehnička svojstva ulja doživjeli mnoge promjene, ali njihova glavna namjena ostala je nepromijenjena. Motorno ulje je dizajnirano da prekrije pokretne dijelove tankim, ali izdržljivim filmom, čime ih štiti od međusobnog trenja.

Danas postoji nekoliko sustava klasifikacije ulja koji omogućuju podjelu maziva prema njihovim performansama, tehničkim karakteristikama i namjeni. Među glavnim općeprihvaćenim sustavima, jedan od najpoznatijih je API klasifikacija motornih ulja. Uveo ga je kasnih 50-ih godina našeg stoljeća Američki institut za naftu, a temeljni princip u njemu je razvrstavanje u dvije kategorije - S i C, odnosno za benzinske i dizel motore.

Specifikacije ulja S i C

Kao što je gore navedeno, API sustav je podijeljen u dvije glavne kategorije, ali postoji i treća oznaka za kvalitetu maziva. Od njih je svaka vrsta neovisna:

Svi ovi standardi označeni su indeksom od dva slova, na primjer, SN, SM, SH, SG, CF, CI, gdje je druga vrijednost pokazatelj razine karakteristika performansi. Štoviše, što je slovo u oznaci bliže kraju latinične abecede, to je viša razina API ulja. Na primjer, oznaka proizvoda kao što je API SL, SM ili SN označava superiornost u odnosu na API SF.

Benzinski motori: razredi kvalitete, njihove oznake i tumačenje

SkupinaOpis
S NSN maziva razlikuju se od SM specifikacija koje su prethodile ovoj kategoriji po tome što sadrže puno manje fosfora, što im daje dodatna svojstva uštede energije i čini SN kompatibilnim s najnoviji sustavi usmjeren na neutralizaciju ispušnih plinova. Klasa SN odobrena je u jesen 2010. godine i koristi se u motorima najmodernijih automobila. Važno je napomenuti da su ulja sa specifikacijom API SN po svojim karakteristikama slična ACEA C2, C3, C4, tako da SN može uspješno zamijeniti maziva klase SM.
S.M.SM je prvi put predstavljen krajem 2004. Ova klasa je danas češća od CN, jer je namijenjena modernim benzinskim motorima, uključujući motore s više ventila i turbopunjače. Maziva u ovoj kategoriji razvijena su uzimajući u obzir poboljšanje motora i stoga su dizajnirana da povećaju njihovu ekološku sigurnost i budu otpornija na habanje. SM se od prethodne kategorije SL razlikuje po većoj otpornosti na oksidaciju i izvrsnim zaštitnim svojstvima protiv stvaranja mulja i naslaga, što svakako utječe na visoka kvaliteta maziva. Dvije godine nakon izlaska SM-a, razvijena je kategorija ulja za dizel motore s oznakom CJ4.
Proizvodi specifikacije SM namijenjeni su i dizajnirani posebno za vozila proizvedena od 2004.
SLKlasa SL razvijena je neposredno prije izlaska SM i SN. Dizajniran je za automobilske motore proizvedene od 2001. godine i apsolutno zadovoljava sve moderne standarde i zahtjeve, uključujući visoku ekološku prihvatljivost i uštedu energije. SL su namijenjeni modernim motorima, uključujući motore s više ventila, turbopunjače i motore prilagođene za rad na siromašnim mješavinama goriva. Motori za koje su namijenjeni proizvodi kategorije SJ mogu raditi i s mazivima iz skupine SL.
Zahvaljujući svojstvima kao što je smanjena isparljivost, SL se odlikuju dugotrajnim zadržavanjem svojih svojstava, zbog čega je interval izmjene motornog ulja osjetno produljen. Danas je ova kategorija važeća i široko korištena od strane modernih vlasnika automobila.
S.J.Ova klasa vrijedi i danas. Odobren je u studenom 1995., iako je proizvod certificiran tek godinu dana kasnije. Stoga se ulja kategorije SJ koriste za automobile s benzinskim motorima od 1996. godine. Uspješno se koriste u motorima osobnih i sportskih automobila, kao iu motorima minibuseva i malih kamiona.
SJ pokazuje dobro tehnički podaci, uključujući otpornost na stvaranje taloga i čađe, kao i sposobnost zadržavanja svojstava na niskim temperaturama. U pogledu ovih svojstava, ulja kategorije SJ vrlo su bliska proizvodima klase SH, te su stoga sasvim prikladna za upotrebu u slučajevima kada proizvođač automobila preporučuje korištenje ulja kategorije SH za automobil.
SHOva kategorija je stvorena 1992. godine i smatra se uvjetno važećom. Ulja uključena u ovu skupinu koriste se u motorima automobila proizvedenih 1996. i ranije. Po svojim kvalitetama ova klasa je superiornija od ulja kategorije SG, jer je razvijena da je zamijeni. Stoga se ulja klase SH uspješno koriste za automobile u kojima se preporučuje SG.
S.G.Klasa SG je namijenjena za motore proizvedene 1193. i ranije. Ulja u ovoj kategoriji imaju izvrsnu zaštitu od čađe i otporna su na oksidaciju i koroziju. SG ulja ispunjavaju sve zahtjeve za motorna ulja namijenjena za API CC diesel motore, što znači da se SG može koristiti za automobile u kojima proizvođač preporučuje korištenje kategorija SF i SF/CC, kao i SE i SE/CC.

Specifikacija ulja za dizel motore

Među modernim specifikacijama motornih ulja najpopularnija su ulja klase CI i CF. Dizajnirani su uzimajući u obzir sve značajke modernih dizelskih motora i zadovoljavaju sve standarde.

C.I.Kategorija CI -4 odobrena 2002. Dizajnirani su za različite dizelske motore, proizvodi specifikacije CI vrlo su otporni na oksidaciju i sadrže aditive za raspršivanje. CI su prilično ekološki prihvatljiva u usporedbi s prethodnim klasama ulja. Vrijedno je napomenuti da iz opće kategorije CI postoji još jedna klasa - CI -4 PLUS. Poboljšana klasa CI -4Plus razvijena je uzimajući u obzir stroge zahtjeve za hlapljivost ulja i njegovu oksidaciju tijekom povišene temperature i stvaranje čađe.
CFCF specifikacija stvorena je za dizelske motore s neizravnim ubrizgavanjem. Odlikuju se visokim sadržajem raznih aditiva koji sprječavaju naslage na klipovima, a također štite od habanja i korozije unutarnjih dijelova koji sadrže bakar, na primjer, ležajeva.
Klasa CF može biti označena kao CF-4 i CF-2, što znači motorna ulja namijenjena za korištenje u četverotaktnim i dvotaktnim (odnosno) dizelskim motorima.
U isto vrijeme, CF-4 su dizajnirani za motore koji rade u ubrzanom načinu rada, a CF-2 su idealni za motore koji su stalno izloženi povećanim opterećenjima.

API klasifikacije Video

Specifikacija

Specifikacija- (kasnolat. specificatio, od lat. species - rod, vrsta, sorta i facio - činiti) može značiti:

  1. definicija i popis specifičnih obilježja, pročišćena klasifikacija nečega;
  2. inženjerski pojam koji označava skup zahtjeva i parametara koje zadovoljava neki tehnički objekt (na primjer, most preko rijeke zadovoljava parametre kao što su najveća ukupna težina tereta, maksimalno osovinsko opterećenje, maksimalna brzina vjetar itd.)

Prema definiciji danoj u Jedinstveni sustav projektna dokumentacija (ESKD), specifikacija- glavni projektni dokument koji definira sastav montažne jedinice, kompleksa, kompleta. Specifikacija sadrži detaljan popis komponenti i dijelova bilo kojeg proizvoda, dizajna, instalacije itd., uključenih u montažni ili radni crtež.

Prema definiciji navedenoj u Politehničkom rječniku, specifikacija- dokument izrađen u obliku tablice koji definira sastav proizvoda. Sadrži simbole komponente, njihove nazive i količine.

Sorte

Specifikacija, dopunjena cijenama za artikle i dodatni uvjeti(cijena, pakiranje, rokovi i uvjeti isporuke, podaci o ugovornim stranama) mogu biti sastavni dio ugovora o nabavi ili djelovati kao Komercijalna ponuda. Ove vrste specifikacija formirane su kao odgovor na tehnički zadatak(TOR) na ugovor o nabavi (proizvodnji) mehanizama, opreme i sl. ili prema upitniku. Specifikacija može sadržavati skup tehničkih (i drugih) uvjeta (TS), ali taj skup obično potvrđuje tehničke zahtjeve za tehničke specifikacije. Sama specifikacija TK nije, već samo odgovor na TK prema uvjetima isporuke.

Specifikacija računa dio je dokumenta plaćanja.

Tehnička specifikacija - specifikacija tehničkog uređaja.

U informacijskim znanostima i računalnim tehnologijama:

  • Specifikacija formata sustav datoteka(UDF, itd.)
  • Specifikacije i opisi programskih jezika (CLI, itd.)

SMILES je specifikacija za nedvosmislen opis sastava i strukture kemijske molekule.

Specifikacija može sadržavati:

  • Opisno ime, broj ili drugi identifikator specifikacije
  • Vrijeme zadnje revizije i oznaka tko je izvršio reviziju
  • Logotip ili zaštitni znak koji označava tko ima pravo kopirati, vlasnika i porijeklo dokumenta
  • Sadržaj dokumenta, ako je dokument dugačak
  • Odgovorna osoba ili organizacija za pitanja o specifikacijama, ažuriranja i odstupanja
  • Važnost, opseg specifikacije i njezina svrha
  • Izrazi, definicije i kratice za pojašnjenje specifikacije
  • Metode provjere za sve navedene zahtjeve i karakteristike
  • Materijalni zahtjevi: fizikalni, mehanički, električni, kemijski i drugi. Ciljano i valjano
  • Zahtjevi za testiranje performansi. Ciljano i valjano
  • Slike, fotografije ili tehničke ilustracije
  • Zahtjevi majstorstva
  • Zahtjevi za certifikaciju
  • Sigurnosni zahtjevi
  • Ekološki zahtjevi
  • Kontrola osiguranja kvalitete, ispitni uzorak, inspekcija, kriterij prihvatljivosti rada
  • Osoba ili organizacija odgovorna za ispunjavanje specifikacije
  • Ispunjenje i isporuka
  • Uvjeti za odstupanja, ponovnu provjeru, reviziju, podešavanje mjera i karakteristika
  • Reference i citati u tijelu specifikacije koji mogu biti potrebni za uspostavljanje jasnoće dokumenta
  • Potpisi i dopuštenja, ako su potrebna
  • Kontrola promjena (pomoću posebnih računalni programi) za sekvencijalni razvoj, provjeru i izvođenje ako je dokument namijenjen internoj upotrebi
  • Prilozi koji pružaju pojedinosti, dodaju jasnoću ili pojašnjavaju podatke o plaćanju

vidi također

Linkovi

Bilješke


Zaklada Wikimedia. 2010.

Sinonimi:
  • Petrovskoye (Jaroslavska regija)
  • Manuel II Paleologos

Pogledajte što je "Specifikacija" u drugim rječnicima:

    SPECIFIKACIJA- dokument izrađen u obliku tablice koji definira sastav proizvoda. Sadrži oznaku komponenti, njihov naziv i količinu (glavni dokument koji se koristi za dovršavanje proizvoda). Rječnik financijskih pojmova... ... Financijski rječnik

    SPECIFIKACIJA- 1) filozofski pojam koji označava samorazlikovanje. 2) recikliranje sirovina ili starih stvari u nova vrsta ili novi oblici koji im daju izgled novih stvari. 3) osobno ili točno slikanje; prepričavanje dijelova koji čine cjelinu; registar..... Rječnik stranih riječi ruskog jezika

    specifikacija- i, f. specifikacija, njemački Specifikacija. lat. vrsta vrsta, sorta + facio do. 1. poseban Definicija i popis specifičnih svojstava nečega; klasifikacija. BAS 1. Ovdje na bedemima topovi, minobacači sa svim... ... Povijesni rječnik galicizama ruskog jezika

    specifikacija- nabrajanje, bilješka, definicija, klasifikacija, dokument, pojašnjenje Rječnik ruskih sinonima. specifikacija imenica, broj sinonima: 6 dokument (82) ... Rječnik sinonima

    Specifikacija- (obrazac br. TORG 10) koristi se u slučaju kada je fakturirana serija robe pakirana u sanduke, bačve i sl. Specifikaciju u dva primjerka ispisuje materijalno odgovorna osoba skladišta (skladišta); jedan primjerak je priložen ... ... Enciklopedijski rječnik-priručnik za menadžere poduzeća

    SPECIFIKACIJA- (lat. specificatio) 1) u građanskom pravu isto što i obrada kao način nastanka imovinskih prava; 2) popis ponuđene ili isporučene robe s naznakom količine za svaki razred, marku, artikl i, ako je potrebno... ... Pravni rječnik

    Specifikacija- popis proizvoda proizvedenih ili ponuđenih za prodaju, koji označava njihovu količinu, razred, marku, karakteristike kvalitete, cijene. Rječnik poslovnih pojmova. Akademik.ru. 2001... Rječnik poslovnih pojmova

    SPECIFIKACIJA- 1) popis pojedinosti na koje treba obratiti posebnu pozornost 2) Jedan od glavnih dokumenata tehničke projektne dokumentacije (za proizvod, proizvode i sl.), obično se izvodi u obliku tablice u kojoj je naziv naznačeno je... Veliki enciklopedijski rječnik

    SPECIFIKACIJA– popis robe koja se nudi za prodaju ili isporuku, s naznačenom količinom, razredom, robnom markom, karakteristikama kvalitete, a po potrebi i cijenama. Raizberg B.A., Lozovsky L.Sh., Starodubtseva E.B.. Moderni ekonomski rječnik.... ... Ekonomski rječnik

    SPECIFIKACIJA- SPECIFIKACIJA, specifikacije, žene. 1. samo jedinice Radnja pod Ch. specificirati; razvoj, navođenje detalja, detalji (knjiga). 2. Dokument koji opisuje proizvedeni predmet (mehanizam, stroj i sl.), kojim se utvrđuje... ... Rječnik Ushakova

knjige

  • , Sheng Liang. Ova knjiga opisuje JNI sučelje. Knjiga će biti korisna onima koji su zainteresirani za sljedeća pitanja: - integracija koda napisanog u programskim jezicima kao što su C i C++ u... Kupite za 1009 RUR
  • JNI sučelje. Priručnik za programiranje i specifikacija, Sheng Liang. Knjiga opisuje Java Native Interface (JNI) – sučelje interoperabilnosti jezik Java s izvornim kodom napisanim na drugim jezicima. Bit će od koristi Java programerima,…