Sử dụng ngôn ngữ (Genneral – purpose language) cho việc định nghĩa khuôn mẫu, cung cấp cho lập trình viên những đặc điểm tính toán không giới hạn, nhƣng nó cũng liên quan đến nguy cơ xuất hiện các lỗi logic trong khuôn mẫu, khi mà cú pháp của chúng phức tạp hơn. Có hai loại ngôn ngữ dạng này là:
3.4.1.1 Ngôn ngữ định kiểu mạnh
Ngôn ngữ định kiểu mạnh (strongly type language) chính là những ngôn ngữ lập trình nhƣ C/C++, Java hoặc C# đƣợc dùng để xây dựng các khuôn mẫu (template). Việc sử dụng ngôn ngữ này cho phép lập trình viên xác định và giải quyết nhiều lỗi logic sử dụng phƣơng pháp phân tích tĩnh. Tuy nhiên, cú pháp của những ngôn ngữ nhƣ vậy liên quan nhiều đến việc ép kiểu, khai báo biến… sẽ làm tăng kích thƣớc của khuôn mẫu và ngƣời phát triển sẽ mất nhiều thời gian để xây dựng khuôn mẫu.
26
3.4.1.2 Ngôn ngữ định kiểu yếu
Những ngôn ngữ định kiểu yếu (Loosely Typed Languages ) là những ngôn ngữ lập trình không đặt nặng về kiểu nhƣ Pert, Php, hoặc các ngôn ngữ kịch bản khác. Lập trình với các ngôn ngữ kịch bản nhƣ JavaScript hay VBScript làm cho lập trình viên giảm đƣợc công sức khai báo, ép kiểu và việc viết các khuôn mẫu trở nên nhỏ gọn và dễ dàng hơn. Tuy nhiên, việc sử dụng những ngôn ngữ nhƣ vậy làm cho sự xuất hiện lỗi khi chạy ở các khuôn mẫu thƣờng xảy ra nhiều hơn, các lỗi cú pháp có thể chỉ đƣợc bắt gặp trong quá trình thông dịch, trong khi các lỗi khác sẽ chỉ đƣợc xác định trong lúc chạy ứng dụng.
Sử dụng ngôn ngữ trong việc xây dựng các khuôn mẫu phục vụ cho các bộ sinh mã sau thực tế nhiều năm ứng dụng cho thấy rằng ngôn ngữ đánh máy không đƣợc trọng dụng nhƣ ngôn ngữ kịch bản (Php, Perl…) hay các dạng ngôn ngữ biến thể của ngôn ngữ định kiểu (nhƣ VBScript cho VB, Web Macro cho Java…)