Java Card is a subset of Java, tailored for low-end embedded systems. The purpose of the DAVID project is to develop a design flow for low-end smart cards and implement and evaluate a prototype. Developing for low-end smart cards means having very hard restrictions in terms of ROM and RAM size, and calculation power.