ডায়নামিকালি টাইপ করা সিস্টেমে মানগুলি রানটাইমের সময় টাইপ করে থাকে তবে ভেরিয়েবল এবং ফাংশন থাকে না। স্ট্যাটিক্যালি টাইপ করা সিস্টেমে ভেরিয়েবল এবং ফাংশনগুলির মধ্যে টাইপগুলি পরিচিত এবং সংকলন-সময়ে পরীক্ষা করা হয়। পাইথনে যেমন কিছুx হতে পারে ; রানটাইমের সময়, এটি যদি 1এটি একটি সংখ্যা এবং যদি এটি হয় তবে এটি "foo"একটি স্ট্রিং। আপনি কেবল xরান টাইমে কোন ধরণের তা জানতেন এবং আপনি যখন প্রোগ্রামটি চালাচ্ছিলেন তখন এটি আলাদা হতে পারে। জাভা মত একটি ভাষা, আপনি লিখতে হবে int xযদি xছিল একটি সংখ্যা হওয়া, এবং আপনি সময় সঙ্কলন যে জানতে চাই xসবসময় একটি হতে হয়েছে int।
"সুস্পষ্ট" এবং "অন্তর্নিহিত" প্রকার উভয়ই স্ট্যাটিক টাইপ সিস্টেমগুলিকে উল্লেখ করে। একটি স্থিতিশীল সিস্টেমের সংজ্ঞা বৈশিষ্ট্য হ'ল প্রকারগুলি সংকলন সময়ে জানা ছিল, তবে প্রয়োজনীয়ভাবে নয় যে সেগুলি লিখতে হবে। জাভাতে, প্রকারগুলি স্পষ্ট - আপনার সেগুলি লিখতে হবে। জাভাতে, কোনও পদ্ধতির মতো দেখতে এমন কিছু হতে পারে:
public int foo(String bar, Object baz) { ... }
প্রকারগুলি উভয়ই সংকলন সময় (স্থিতিশীল) এবং লিখিত আউট (স্পষ্ট) এ পরিচিত। তবে এমন কিছু ভাষাও রয়েছে যা আপনাকে টাইপটি লিখতে বাধ্য করে না । তারা করতে পারেন অনুমান তার শরীর থেকে একটি ফাংশন ধরণ এবং কিভাবে এটা ব্যবহার করা হয়। একটি উদাহরণ হ'ল ওক্যামেল, যেখানে আপনি এমন কিছু লিখতে পারেন:
let foo x = x + 1
যেহেতু আপনি ব্যবহার করেছেন +, ওক্যামেল xএটি নির্ধারণ করতে পারে যে এটি একটি intনিজস্ব হতে হবে। সুতরাং ধরণ foo( foo : int -> int) করা হয় মাত্র জাভা উদাহরণটি কম্পাইল সময়ে পরিচিত। এটি সম্পূর্ণ অচল। যাইহোক, সংকলকটি যেহেতু কী কী ধরণের নিজস্ব হতে হবে তা নির্ধারণ করতে পারে, তাই আপনাকে সেগুলি নিজেই লিখতে হবে না: সেগুলি অন্তর্নিহিত।
সংক্ষেপে: কোনও প্রকারের সিস্টেম সুস্পষ্ট বা অন্তর্নিহিত কিনা তা স্থির ব্যবস্থার সম্পত্তি । কোনও টাইপ সিস্টেমটি গতিশীল বা স্থির কিনা তা থেকে এটি সম্পূর্ণ আলাদা প্রশ্ন।
প্রায়শই, আপনার টাইপ সিস্টেম থাকে যা বিভিন্ন সময়ে সুস্পষ্ট এবং কখনও কখনও অন্তর্নিহিত থাকে।
উদাহরণস্বরূপ, আমি বিশ্বাস করি সি # আপনাকে varকীওয়ার্ড ব্যবহার করে প্রকারগুলি নির্ধারণ করতে দেয় । লেখার পরিবর্তে int x = 10, আপনি লিখতে পারেন var x = 10এবং সংকলক পরিসংখ্যানগুলি যে xএকটি হতে হবে int। সি ++ এর সাথে একই রকম কিছু করে auto। এই সিস্টেমগুলি সাধারণত স্পষ্ট হয় তবে কিছুটা অনুভূতি রয়েছে।
ফ্লিপসাইডে, এমন সিস্টেম রয়েছে যা সাধারণত অন্তর্ভুক্ত থাকে তবে কখনও কখনও আপনাকে টাইপ স্বাক্ষরটি লিখতে বাধ্য করে। হাস্কেল একটি দুর্দান্ত উদাহরণ। বেশিরভাগ সময়, হাস্কেল আপনার জন্য প্রকারগুলি নির্ধারণ করতে পারে। তবে, কখনও কখনও আপনি কোডটি লিখতে পারেন যা অস্পষ্ট মত show . read, যেখানে হাস্কেল নিজে থেকে প্রকারগুলি বের করতে পারে না। এই ক্ষেত্রে, আপনি স্পষ্টভাবে হয় showবা উভয় প্রকারের নির্দিষ্ট করতে বাধ্য করা হবে read। অধিকন্তু, টাইপ সিস্টেমের আরও কয়েকটি উন্নত বৈশিষ্ট্য (যেমন র্যাঙ্ক-এন পলিমারফিজম) অনুমানকে অনির্ধারিত করে তোলে - এটি থামার গ্যারান্টিযুক্ত নয়। এর অর্থ এই বৈশিষ্ট্যটি ব্যবহার করে কোডটির প্রায়শই সুস্পষ্ট ধরণের স্বাক্ষর প্রয়োজন।