.
CND সি আরো মনোজ্ঞ & nbsp এন-মাত্রিক অ্যারে ব্যবহার করে তোলে যে একটি পাইথন উৎস থেকে উৎস অনুবাদক; এটা এই কোড চালু হবে:
অকার্যকর sgemm (ভাসা * একটি, ভাসা * খ, ভাসা * গ, কোন int n)
{
& Nbsp; মাত্রা "ফোরট্রান" একটি [এন, এন];
& Nbsp; মাত্রা "ফোরট্রান" খ [এন, এন];
& Nbsp; মাত্রা গ [এন, এন];
& Nbsp; জন্য (; আমি =
& Nbsp; {
& Nbsp; ভাসা-tmp = 0;
& Nbsp; জন্য (int ট = 1; ট <= এন; ++ ট)
& Nbsp; tmp + + = একটি [আমি, ট] * খ [ট, ঞ];
& Nbsp; [আমি-1, জে-1] tmp = c;
& Nbsp;}
}
এই মধ্যে:
অকার্যকর sgemm (ভাসা * একটি, ভাসা * খ, ভাসা * গ, কোন int n)
{
& Nbsp; জন্য (; আমি =
& Nbsp; {
& Nbsp; ভাসা-tmp = 0;
& Nbsp; জন্য (int ট = 1; ট <= এন; ++ ট)
& Nbsp; tmp + + = একটি [((ট - 1) * ((ঢ - 1) + + 1)) + + (আমি - 1)] * খ [((ঞ - 1) * ((ঢ - 1) + + 1) ) + + (ট - 1)];
& Nbsp; গ [((আমি - 1) * এন) + + (ঞ - 1)] tmp =;
& Nbsp;}
}
এছাড়াও আপনি অতিরিক্ত ঘন্টাধ্বনি এবং whistles কয়েক দেখায় যে একটি আরো ব্যাপক উদাহরণ কটাক্ষপাত করা হতে পারে.
একটি মাত্রা ঘোষণা কার্যকর অ্যারে (IDX অফ) সাবস্ক্রিপ্ট অপারেটর ব্যাখ্যা পরিবর্তন করা হয়. মাত্রা ঘোষণা নিয়মিত সি scoping নিয়ম মান্য করা.
আমি CND একটি শক্তসমর্থ, পার্সার ভিত্তিক অনুবাদক, না একটি স্তরপূর্ণ টেক্সট প্রতিস্থাপন হাতিয়ার মনে রাখবেন যে করতে চাই. এটা হল C99, প্লাস অনেক গনুহ এক্সটেনশন সব বুঝতে পারে.
একটি মাত্রা ঘোষণা প্রতিটি অক্ষ স্পেসিফিকেশন নিম্নলিখিত ফর্ম আছে:
শুরু: শেষ: দীর্ঘ: leading_dimension
শুরু বাদ দেওয়া হতে পারে. শেষ এবং দীর্ঘ এছাড়াও বাদ দেওয়া হতে পারে, কিন্তু তাদের পরে এন্ট্রি চিহ্নিত করা হয়, তাদের পিছিয়ে কোলন জায়গায় থাকা আবশ্যক. উদাহরণস্বরূপ, অক্ষ স্পেসিফিকেশন: 5 কেবল দীর্ঘ কেবল সূচক একটি গুণক হিসাবে কাজ করে 5. একটি দীর্ঘ নির্ধারণ করা হয়. সবটা চেক কোন সম্ভরপরতা মাত্রা ঘোষণা করা হয়. আপনি পাদদেশ মধ্যে কোনো উপায় আপনার মত নিজেকে অঙ্কুর পারে.
বিন্যাস সব দেওয়া "গ" বা না হিসাবে দেওয়া হয়, কিছু জিনিস সত্য হল:
- অ্যারে সারি-প্রধান, যাতে পরিপূর্ণ হয়.
- নির্দিষ্ট যদি শেষ সূচক, একচেটিয়া হতে নেওয়া হয়.
- 0 থেকে শুরু সূচক ডিফল্ট.
বিন্যাস "ফোরট্রান" হিসাবে উল্লেখিত থাকে, কিছু জিনিস সত্য হল:
- অ্যারে কলাম-প্রধান, যাতে পরিপূর্ণ হয়.
- নির্দিষ্ট যদি শেষ সূচক, সমেত হতে নেওয়া হয়.
- 1 থেকে শুরু সূচক ডিফল্ট.
মাত্রা ঘোষণা মধ্যে জ্ঞান (অধিকাংশ) follwing কর্ম দ্বারা programmatically reobtained করা হতে পারে:
- Rankof (ক)
- Nitemsof (ক)
- Lboundof (একটি, অক্ষ)
- Uboundof (একটি অক্ষ) (ব্যবহারকারী নির্দিষ্ট সর্বোচ্চ সীমা প্রদান করে)
- Puboundof (একটি, অক্ষ) (শুধু অক্ষ শেষে গত সূচক প্রদান করে)
- Ldimof (একটি, অক্ষ)
- Strideof (একটি, অক্ষ)
প্রতিটি ক্ষেত্রে, অক্ষ একটি ধ্রুবক পূর্ণসংখ্যা (না একটি ধ্রুবক অভিব্যক্তি, একটি প্লেইন পূর্ণসংখ্যা) হতে হবে.
ইনস্টলেশন / ব্যবহারের
আপনি প্যাকেজ সূচক থেকে, বা GitHub থেকে tarball ডাউনলোড করে CND প্রাপ্ত হতে পারে:
& Nbsp; Git ক্লোন Git: //github.com/inducer/cnd.git
& Nbsp; সিডি CND
Git submodule Init
& Nbsp; Git submodule আপডেট
CND ব্যবহার করার জন্য, কেবল আপনার পাথ বিতরণের-ডিরেক্টরি / বিন যোগ করুন.
শুরু করার জন্য, কেবল (CND রুট মধ্যে থেকে) ব্যবহার করুন:
& Nbsp; সিডি উদাহরণ
& Nbsp; ../ বিন / cndcc জিসিসি -std = C99 basic.c
& Nbsp; ./ a.out
আপনি অনুবাদ প্রক্রিয়ার উপর আরো সূক্ষ্ম খসখসে নিয়ন্ত্রণ চান, CND কমান্ড শুধু সোর্স-এর উৎস অনুবাদ অনাবৃত. যে CND preprocessed উৎস আশা করে. আপনি CND আছে আপনার জন্য আপনার উৎস এর preprocessor চালানো বিকল্প ই পাস হতে পারে. সঞ্চালন করুন:
& Nbsp; CND -h
কমান্ড-লাইন ইন্টারফেস পূর্ণ সহায়তা পেতে পারেন. আপনি ব্যবহার করতে চান preprocessor এবং এর CND_CPP এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারেন.
এই রিলিজে নতুন কি:
- একটি থেকে সিনট্যাক্স পরিবর্তন করুন; একটি থেকে [আমি ঞ] [i, j] .
- আরো পার্সার সমর্থন.
বাস্তব জীবনের হেডার জন্য
আবশ্যক
- পাইথন
পাওয়া মন্তব্যসমূহ না