Generally it is not advisable to create your own cryptographic operations on a smart card. When programming a smart card you need to understand the risks of side-channel attacks and perturbation attacks. For instance, you may need to program your way around DPA (Differential Power Analysis) and LFI attacks (Laser Fault Injection).
Normally you program on top of an operating system. This operating system contains cryptographic libraries (normally written in C). These libraries in turn depend on the cryptographic co-processor(s) on the smart card. In general the co-processors consists of one or more specialized implementations of block ciphers (DES and AES) and an asymmetric co-processor that contains a Montgomery multiplier.
If you want to implement your own routines you probably need a development environment for a specific smart card OS. It is likely that your level of access requires an IDE to perform C-written code for a specific processor. I think that the KEIL development tools are most commonly used.
ECC algorithms are present on a lot of high end smart cards. Be aware that RSA may still be more secure regarding side channel attacks. Unfortunately I don't have information about Bi-linear pairing on a smart card.