Refleksija (programavimas)
|
Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius. Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |
Refleksija – galimybė programinėmis priemonėmis išgauti aukšto lygio programos struktūrą – informaciją apie tipus, klases, klasių metodus ir pan. Kai kuriose programavimo kalbose refleksija suteikia galimybę modifikuoti programos struktūrą (dinamiškai kurti klases, funkcijas). Refleksija būdinga aukšto lygio programavimo kalboms, tokios kalbos kompiliavimo metu ne tik sukuria vykdymo kodą, bet ir išsaugo metainformaciją apie struktūrą, todėl atsiranda galimybė programos kode tirti šiuos metaduomenis, pavyzdžiui, dinamiškai perrinkti tam tikros iš anksto nežinomos klasės metodus, taip pat juos vykdyti.
Vienaip ar kitaip dinaminę refleksiją palaiko nemaža dalis interpretuojamų kalbų, pilnai – objektinės kalbos. Kai kurios refleksiją palaikančios kalbos:
- SmallTalk
- Lisp
- Java
- Objective-C
- .NET kalbos (C#, VB.NET)
- PHP
- JavaScript
- Python
- Ruby