ದಿ ಎಪಿಐ ಸಂಕ್ಷಿಪ್ತ ರೂಪಗಳು ನೀವು ಸಾಫ್ಟ್ವೇರ್ ಕುರಿತು ಲೇಖನಗಳನ್ನು ಓದಿದಾಗ ಅವುಗಳನ್ನು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಾರಿ ನೋಡಿದ್ದೀರಿ. ಆದರೆ ಎಪಿಐ ನಿಜವಾಗಿಯೂ ಏನು ಎಂದು ಎಲ್ಲರಿಗೂ ತಿಳಿದಿಲ್ಲ. ಅದಕ್ಕಾಗಿಯೇ ನಾವು ಅದನ್ನು ಈ ಲೇಖನದಲ್ಲಿ ಸ್ಪಷ್ಟಪಡಿಸುತ್ತೇವೆ. ಹೇಳಬೇಕಾದ ಮೊದಲನೆಯದು, ಅವು ಅಪ್ಲಿಕೇಶನ್ ಪ್ರೊಗ್ರಾಮಿಂಗ್ ಇಂಟರ್ಫೇಸ್ನ ಸಂಕ್ಷಿಪ್ತ ರೂಪಗಳು, ಅಂದರೆ ಸ್ಪ್ಯಾನಿಷ್ ಭಾಷೆಯಲ್ಲಿ, ಅಪ್ಲಿಕೇಷನ್ ಪ್ರೊಗ್ರಾಮಿಂಗ್ ಇಂಟರ್ಫೇಸ್. ಮತ್ತು ಕೆಲವು ಬಾರಿ ಇದು ಕೆಲವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ತಿಳಿದಿರುವವರಲ್ಲಿಯೂ ಗೊಂದಲವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
ಉದಾಹರಣೆಗೆ, ಆರ್ಡುನೊ ತನ್ನದೇ ಆದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ API ಅನ್ನು ಹೊಂದಿದೆ, ನಿಮ್ಮ ಯೋಜನೆಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸಲು ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ನೀವು ಆರ್ಡುನೊ ಐಡಿಇ ಅಥವಾ ಇತರ ಪರಿಸರದಲ್ಲಿ ಬಳಸಬಹುದಾದ ಹಲವಾರು ಕಾರ್ಯಗಳನ್ನು ನೀಡುತ್ತದೆ. ಆದರೆ ... ನೀವು ನನಗೆ ಹೇಳಬಹುದೇ? ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಲೈಬ್ರರಿ ಮತ್ತು API ನಡುವಿನ ವ್ಯತ್ಯಾಸ? ಫ್ರೇಮ್ವರ್ಕ್ ಮತ್ತು ಎಪಿಐ ನಡುವೆ ವ್ಯತ್ಯಾಸಗಳಿವೆಯೇ? ಎಪಿಐ ಎಬಿಐನಂತೆಯೇ ಇದೆಯೇ? ಬಹುಶಃ ಗೊಂದಲವನ್ನು ಉಂಟುಮಾಡುತ್ತಲೇ ಇರುತ್ತವೆ ಮತ್ತು ನಾವು ಇದೀಗ ಸ್ಪಷ್ಟಪಡಿಸಲಿದ್ದೇವೆ ಎಂಬ ಅನುಮಾನಗಳಿವೆ.
ಅದು ನಿಮಗೆ ತಿಳಿದಿದೆಯೇ ಎಂದು ನನಗೆ ಗೊತ್ತಿಲ್ಲ ಕಡಿಮೆ ಮಟ್ಟದ ಭಾಷೆಗಳು, ಅಸೆಂಬ್ಲರ್ ಅಥವಾ ಎಎಸ್ಎಮ್ನಂತೆ, ನೇರವಾಗಿ ಹಾರ್ಡ್ವೇರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ, ಆದರೆ ಉನ್ನತ ಮಟ್ಟದವರು ಪ್ರೋಗ್ರಾಮರ್ ಕಾರ್ಯವನ್ನು ಸುಲಭಗೊಳಿಸಲು ಹಾರ್ಡ್ವೇರ್ನಿಂದ ಅಮೂರ್ತವಾಗುತ್ತಾರೆ, ಆದರೆ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ (ಸಿಸ್ಕಾಲ್ಗಳು) ಅಥವಾ ಕೆಲವು ಎಪಿಐಗಳನ್ನು ಅವಲಂಬಿಸಿರುತ್ತಾರೆ. ಆದ್ದರಿಂದ ಇದೆಲ್ಲವೂ ಚೈನೀಸ್ನಂತೆ ಧ್ವನಿಸುವುದಿಲ್ಲ, ಅದರ ಬಗ್ಗೆ ಏನೆಂದು ನೋಡೋಣ ...
API ಎಂದರೇನು?
ಉನಾ API ಎನ್ನುವುದು ಡೆವಲಪರ್ಗಳನ್ನು ಒದಗಿಸುವ ಸಾಧನವಾಗಿದೆ ಆದ್ದರಿಂದ ಅವುಗಳು ಈಗಿರುವ ಗ್ರಂಥಾಲಯಗಳ ಮೂಲಕ ಬಳಸಬಹುದಾದ ಕಾರ್ಯಗಳು, ಸಬ್ರುಟೀನ್ಗಳು ಮತ್ತು ಕಾರ್ಯವಿಧಾನಗಳು ಅಥವಾ OOP ಗಾಗಿ ವಿಧಾನಗಳನ್ನು ಹೊಂದಿವೆ. ಎಪಿಐ ಕೊಡುಗೆಗಳಲ್ಲಿ ಸರಳವಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸುವ ಕಾರ್ಯಗಳು, ಎಐಗೆ ಸಂಬಂಧಿಸಿದ ಕಾರ್ಯಗಳು, ಗ್ರಾಫಿಕ್ಸ್ ಉತ್ಪಾದನೆ, ಹಾರ್ಡ್ವೇರ್ ಸಂಪನ್ಮೂಲಗಳ ನಿರ್ವಹಣೆ ಇತ್ಯಾದಿ.
ಉದಾಹರಣೆಗೆ, ಗ್ಲಿಬ್ಸಿ ಲೈಬ್ರರಿಯ ಮೂಲಕ ಲಿನಕ್ಸ್ ನೀಡುವಂತಹ ಎಪಿಐಗಳು ಅಥವಾ ಗ್ರಾಫಿಕ್ಸ್ನಂತಹ ಪರಿಚಿತತೆ ನಿಮಗೆ ತಿಳಿದಿದೆ ಎಂದು ನನಗೆ ಖಾತ್ರಿಯಿದೆ ಓಪನ್ ಜಿಎಲ್ ಮತ್ತು ವಲ್ಕನ್, ಅಥವಾ ಓಪನ್ ಸಿಎಲ್ ನಂತಹ ಇತರರು ವೈವಿಧ್ಯಮಯ ಕಂಪ್ಯೂಟಿಂಗ್ಗಾಗಿ, ವರ್ಚುವಲ್ ಮತ್ತು ವರ್ಧಿತ ರಿಯಾಲಿಟಿಗಾಗಿ ಓಪನ್ಎಕ್ಸ್ಆರ್, ಇತ್ಯಾದಿ. ಇತರ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂಗಳು ಮತ್ತು ಸಾಫ್ಟ್ವೇರ್ಗಳು ತಮ್ಮದೇ ಆದ API ಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿರುತ್ತವೆ, ಇದರಿಂದಾಗಿ ಇತರ ಪ್ರೋಗ್ರಾಮರ್ಗಳು ಆ ಸಿಸ್ಟಮ್ಗಾಗಿ ಆಡ್ಆನ್ಗಳು, ಪ್ಲಗ್ಇನ್ಗಳು ಅಥವಾ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ರಚಿಸಬಹುದು.
ಆರ್ಡುನೊ ಜೊತೆ ಉದಾಹರಣೆ
ನೀವು ಬ್ಯಾಡ್ಜ್ ಹೊಂದಿದ್ದರೆ Arduino ಮತ್ತು ನೀವು ಆಗಾಗ್ಗೆ Arduino IDE ಅನ್ನು ಬಳಸುತ್ತೀರಿ, ಅಥವಾ ಆರ್ಡುನೊಗೆ ಯಾವುದೇ ಇತರ ಅಭಿವೃದ್ಧಿ ಪರಿಸರ, ನೀವು ಕೋಡ್ ಅನ್ನು ರಚಿಸುವಾಗ ನಿಮ್ಮ ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ ಅನ್ನು ಸರಣಿ ಕ್ರಿಯೆಗಳನ್ನು ಮಾಡಲು ಆದೇಶಿಸಲು ನೀವು ಅನೇಕ ಆಯ್ಕೆಗಳನ್ನು ಬಳಸುತ್ತೀರಿ ಎಂದು ನಿಮಗೆ ತಿಳಿಯುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಆರ್ಡುನೊ ಪಿನ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಪಿನ್ಮೋಡ್ () ಒಂದು ವಿಶಿಷ್ಟ ಕಾರ್ಯವಾಗಿದೆ, ಸರಿ?
ನೀವು ಬರೆಯುವಾಗ ಪಿನ್ಮೋಡ್ (9, ಇನ್ಪುಟ್)ಉದಾಹರಣೆಗೆ, ಆರ್ಡುನೊ ಬೋರ್ಡ್ನ ಪಿನ್ 9 ಇನ್ಪುಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬೇಕು ಎಂದು ನೀವು ಸೂಚಿಸುತ್ತಿದ್ದೀರಿ, ಅಂದರೆ, ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ ಆ ಪಿನ್ ಮೂಲಕ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಕಾಯುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಓದಲು ಮತ್ತು ಕ್ರಿಯೆಯನ್ನು ಮಾಡುತ್ತದೆ. ಆದರೆ ಆ ಆಜ್ಞೆಯನ್ನು ಅವನು ಹೇಗೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಲ್ಲನೆಂದು ನೀವು ಎಂದಾದರೂ ಯೋಚಿಸಿದ್ದೀರಾ?
ಸರಿ, ಅರ್ಡುನೊಗೆ ಒಂದು ಇದೆ ಅಭಿವೃದ್ಧಿ API ನಮಗೆ ಲಭ್ಯವಾಗಿದೆ. ಈ ಬ್ಲಾಗ್ನಲ್ಲಿ ನಾವು ಅನೇಕ ಉದಾಹರಣೆಗಳಲ್ಲಿ ನೋಡಿದಂತೆ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಈ API ಗೆ ಸೇರಿಸಬಹುದು. ಕೆಲವು ಸಂವೇದಕಗಳು ಇತ್ಯಾದಿಗಳಿಗೆ ಸ್ಪಾರ್ಕ್ಫನ್ನಂತೆ. ಈ ಎಲ್ಲದರ ಜೊತೆಗೆ, ಕಾರ್ಯಗಳನ್ನು ಆರ್ಡುನೊ ಐಡಿಇಯಲ್ಲಿ ನಮೂದಿಸಬಹುದು ಮತ್ತು ಅದನ್ನು ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ನ ಮೆಮೊರಿಗೆ ಲೋಡ್ ಮಾಡಲು ಕೋಡ್ ಅನ್ನು ಸರಿಯಾಗಿ ಅನುವಾದಿಸುತ್ತದೆ ಇದರಿಂದ ಅದನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು.
ನೀವು ಈ ಎಪಿಐ ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ಎಟಿಎಂಇಗಾ 328 ಪಿ ಮೈಕ್ರೊಕಂಟ್ರೋಲರ್ಗಾಗಿ ಅಸೆಂಬ್ಲಿ ಕೋಡ್ನಲ್ಲಿ ಅವುಗಳನ್ನು ಮಾಡಲು ನಾವು ಪ್ರಯತ್ನಿಸಬೇಕು, ಏಕೆಂದರೆ ನೀವು ಆರ್ಡುನೊಗಾಗಿ ಈ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಅಷ್ಟು ಸರಳ ರೀತಿಯಲ್ಲಿ ರಚಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಎವಿಆರ್ ವಾಸ್ತುಶಿಲ್ಪಕ್ಕಾಗಿ ಎಎಸ್ಎಂ. ಮತ್ತು ಅದು ಹೆಚ್ಚು ಜಟಿಲವಾಗಿದೆ, ಏಕೆಂದರೆ ಈ ಐಎಸ್ಎ ಲಭ್ಯವಿರುವ ಸೂಚನೆಗಳನ್ನು ನೀವು ನೇರವಾಗಿ ಬಳಸಬೇಕಾಗುತ್ತದೆ. ಹಾಗಿದ್ದಲ್ಲಿ, ನೀವು ಆ ಐಎಸ್ಎಯ ಸಂಗ್ರಹವನ್ನು ಸಮರ್ಪಕವಾಗಿ ತಿಳಿದುಕೊಳ್ಳಬೇಕಾಗಿಲ್ಲ, ಆದರೆ ನೋಂದಣಿಗಳ ಸಂಖ್ಯೆ ಮುಂತಾದ ಇತರ ಅಂಶಗಳನ್ನು ಸಹ ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾಗಿತ್ತು. ಅಂದರೆ, ನೀವು ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಹಾರ್ಡ್ವೇರ್ ಬಗ್ಗೆ ನಿಮಗೆ ಕಡಿಮೆ ಮಟ್ಟದ ಜ್ಞಾನವಿರಬೇಕು.
ಮೂಲಕ ಉದಾಹರಣೆಗೆ, ಎಎಸ್ಎಂ ಕೋಡ್ ಎಲ್ಇಡಿ ಲೂಪ್ನಲ್ಲಿ ಮಿಟುಕಿಸಲು ನೀವು ಏನನ್ನು ರಚಿಸಬೇಕು:
<br data-mce-bogus="1"> .ORG 0x0000 ; the next instruction has to be written to ; address 0x0000 rjmp START ; the reset vector: jump to "main" START: ldi r16, low(RAMEND) ; set up the stack out SPL, r16 ldi r16, high(RAMEND) out SPH, r16 ldi r16, 0xFF ; load register 16 with 0xFF (all bits 1) out DDRB, r16 ; write the value in r16 (0xFF) to Data ; Direction Register B LOOP: sbi PortB, 5 ; switch off the LED rcall delay_05 cbi PortB, 5 ; wait for half a second ; switch it on rcall delay_05 ; wait for half a secon rjmp LOOP ; jump to loop DELAY_05: ; the subroutine: ldi r16, 31 ; load r16 with 31 OUTER_LOOP: ; outer loop label ldi r24, low(1021) ; load registers r24:r25 with 1021, our new ; init value ldi r25, high(1021) ; the loop label DELAY_LOOP: ; "add immediate to word": r24:r25 are ; incremented adiw r24, 1 ; if no overflow ("branch if not equal"), go ; back to "delay_loop" brne DELAY_LOOP dec r16 ; decrement r16 brne OUTER_LOOP ret ; and loop if outer loop not finished ; return from subroutine
ಹಾಗೆಯೇ API ಗೆ ಧನ್ಯವಾದಗಳು ಸೌಲಭ್ಯಗಳು ಒಟ್ಟು, ಈ ಕೆಳಗಿನ ಸಮಾನ ಸಂಕೇತವನ್ನು ಉನ್ನತ ಮಟ್ಟದಲ್ಲಿ ಬರೆಯುವುದು (ಹೆಚ್ಚು ಕಡಿಮೆ ಮತ್ತು ಹೆಚ್ಚು ಅರ್ಥಗರ್ಭಿತ):
<br data-mce-bogus="1"> int ledPin = 13; // LED que se encuentra en el pin 13 void setup(){ pinMode(ledPin, OUTPUT); // El p1n 13 será una salida digital } void loop(){ digitalWrite(ledPin, HIGH); // Enciende el LED delay(1000); // Pausa de 1 segundo digitalWrite(ledPin, LOW); // Apaga el LED delay(1000); // Pausa de 1 segundo
ಎಬಿಐನೊಂದಿಗಿನ ವ್ಯತ್ಯಾಸಗಳು
ಎಬಿಐ ಕಡಿಮೆ ತಿಳಿದಿಲ್ಲದ ಪದವಾಗಿದೆ, ಇದು ಎ ಅಪ್ಲಿಕೇಶನ್ ಬೈನರಿ ಇಂಟರ್ಫೇಸ್, ಅಥವಾ ಇಂಗ್ಲಿಷ್ ಅಪ್ಲಿಕೇಶನ್ ಬೈನರಿ ಇಂಟರ್ಫೇಸ್ನಲ್ಲಿ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಇದು ಪ್ರೋಗ್ರಾಂನ ಮಾಡ್ಯೂಲ್ಗಳ ನಡುವಿನ ಇಂಟರ್ಫೇಸ್ ಆಗಿದೆ, ಸಾಮಾನ್ಯವಾಗಿ ನೀವು ಇರುವ ವಾಸ್ತುಶಿಲ್ಪಕ್ಕಾಗಿ ಗ್ರಂಥಾಲಯ ಅಥವಾ ಯಂತ್ರ ಭಾಷಾ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ನಡುವೆ: SPARC, AMD64, ARM, PPC, RISC-V, ಇತ್ಯಾದಿ.
ಎಬಿಐಗೆ ಧನ್ಯವಾದಗಳು, ಕಾರ್ಯಗಳನ್ನು ಕರೆಯುವ ವಿಧಾನವನ್ನು ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ, ಬೈನರಿ ಸ್ವರೂಪ ಇದು ನೀವು ಕಂಪೈಲ್ ಮಾಡುತ್ತಿರುವ ಯಂತ್ರ ಅಥವಾ ಸಿಸ್ಟಮ್ ಕರೆಗಳು, ವಿನಾಯಿತಿಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ, ಡೇಟಾವನ್ನು ಹೇಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ ಇತ್ಯಾದಿಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದು.
ಫ್ರೇಮ್ವರ್ಕ್ನೊಂದಿಗೆ ವ್ಯತ್ಯಾಸಗಳು
Un ಫ್ರೇಮ್ವರ್ಕ್ ಅಥವಾ ಫ್ರೇಮ್ವರ್ಕ್ ಹೆಚ್ಚಿನ ಸಾಧನಗಳ ಗುಂಪಾಗಿದೆ ನಿರ್ದಿಷ್ಟ ಯೋಜನೆಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಸಹಾಯ ಮಾಡಲು ನಿಮ್ಮ ಇತ್ಯರ್ಥಕ್ಕೆ. ಫೇಮ್ವರ್ಕ್ ಸಾಮಾನ್ಯವಾಗಿ ಕೆಲವು ಕೋಡಿಂಗ್ ಮಾನದಂಡಗಳನ್ನು ಹೊಂದಿಸುತ್ತದೆ, ಉಪಯುಕ್ತ ಘಟಕಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಜುನಿಟ್ ಎನ್ನುವುದು ಜಾವಾ, ಅಥವಾ ಪಿಎಚ್ಪಿಗಾಗಿ ಸಿಮ್ಫೊನಿ / ಕೇಕ್ ಇತ್ಯಾದಿಗಳ ಚೌಕಟ್ಟು.
ಎಸ್ಡಿಕೆ ಮತ್ತು ಎನ್ಡಿಕೆ ಜೊತೆಗಿನ ವ್ಯತ್ಯಾಸಗಳು
ಎಸ್ಡಿಕೆ ಸಾಫ್ಟ್ವೇರ್ ಡೆವಲಪ್ಮೆಂಟ್ ಕಿಟ್ ಆಗಿದೆ, ಅಂದರೆ, ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿ ಕಿಟ್. ಇದು ಫ್ರೇಮ್ವರ್ಕ್ ಅಥವಾ ಎಪಿಐ ಅನ್ನು ಮೀರಿದೆ. ಆಂಡ್ರಾಯ್ಡ್ ಸ್ಟುಡಿಯೋ ಅಥವಾ ಐಒಎಸ್ ಎಕ್ಸ್ಕೋಡ್ ಇತ್ಯಾದಿ ಉದಾಹರಣೆಯಾಗಿರಬಹುದು. ಉದಾಹರಣೆಗೆ, ಮೊದಲನೆಯದು, ಆಂಡ್ರಾಯ್ಡ್ ಎಪಿಐ ಜೊತೆಗೆ, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮತ್ತು ಕಂಪೈಲಿಂಗ್, ಲೈಬ್ರರಿಗಳು, ಪರಿಕರಗಳು ಇತ್ಯಾದಿಗಳಿಗಾಗಿ ಐಡಿಇ ಅಥವಾ ಸಂಯೋಜಿತ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ.
ಮತ್ತೊಂದೆಡೆ, ಎನ್ಡಿಕೆ (ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿ ಕಿಟ್) ಇದು ಒಂದು ಪೂರಕವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಆಂಡ್ರಾಯ್ಡ್ ಎನ್ಡಿಕೆ ಡೆವಲಪರ್ಗಳಿಗೆ ಸಿ / ಸಿ ++ ಕೋಡ್ ಅನ್ನು ಜೆಎನ್ಐ (ಜಾವಾ ನೇಟಿವ್ ಇಂಟರ್ಫೇಸ್) ಮೂಲಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಪರಿಚಯಿಸುವ ಮೂಲಕ ಮರುಬಳಕೆ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ ...
ಗ್ರಂಥಾಲಯದೊಂದಿಗಿನ ವ್ಯತ್ಯಾಸಗಳು
ಅಂತಿಮವಾಗಿ, ಗ್ರಂಥಾಲಯವು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಮೂಲ ಸಂಕೇತದ ಸಂಗ್ರಹವಾಗಿದೆ ಅದು ಪ್ರೋಗ್ರಾಮರ್ಗಳಿಗೆ ಜೀವನವನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಸಿ ಲೈಬ್ರರಿಯೊಳಗೆ stdio.h ಪರದೆಯ ಮೇಲೆ ಪಠ್ಯವನ್ನು ಮುದ್ರಿಸಲು printf ಕಾರ್ಯವಿದೆ. ಇದು ಸಾಧ್ಯವಾಗಬೇಕಾದರೆ, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಈ ಕಾರ್ಯವನ್ನು ಮಾಡಲು ಮೂಲ ಕೋಡ್ ಅಗತ್ಯವಿದೆ. ಆದರೆ ಇದು ಆಗಾಗ್ಗೆ ಮರುಕಳಿಸುವ ಸಂಗತಿಯಾಗಿರುವುದರಿಂದ, ಆ ಗ್ರಂಥಾಲಯವನ್ನು ಆಹ್ವಾನಿಸುವ ಮೂಲಕ ನೀವು ಎಲ್ಲಾ ಕೋಡ್ಗಳನ್ನು ಮೊದಲಿನಿಂದ ಬರೆಯದೆ ಪ್ರಿಂಟ್ ಎಫ್ ಅನ್ನು ಬಳಸಬಹುದು. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಅವುಗಳನ್ನು ಪ್ರಿಕಾಸ್ಟ್ ಬ್ಲಾಕ್ಗಳಾಗಿ ಕಾಣಬಹುದು.
ಲೈಬ್ರರಿ ಮತ್ತು API ಅನ್ನು ಸುಲಭವಾಗಿ ಗೊಂದಲಗೊಳಿಸಬಹುದು, ವಾಸ್ತವವಾಗಿ, ಗ್ರಂಥಾಲಯಗಳನ್ನು API ಒಳಗೆ ಸುತ್ತಿಡಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆ glibc...
ಇದರ ನಂತರ ನಿಮಗೆ ಒಂದು ಉಪಾಯವಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ ಎಪಿಐ, ಎಬಿಐ, ಫ್ರೇಮ್ವರ್ಕ್, ಎಸ್ಡಿಕೆ ಮತ್ತು ಲೈಬ್ರರಿ ಯಾವುವು ಎಂಬುದರ ಬಗ್ಗೆ ಸ್ಪಷ್ಟವಾಗಿದೆ, ಜೊತೆಗೆ ಈಗಿನಿಂದ ಅವುಗಳ ನಡುವೆ ವ್ಯತ್ಯಾಸವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.