14 program kodu nedir. Program kodu nedir, uygulama, hatalar

  • 14.06.2019

Talimatlar

Kaynağını kullanarak kaynak kodunu görüntüleyin. Kaynak dosya, yazılım oluşturulurken programcı tarafından yazılan kodu içerir, ardından özel araçlar kullanılarak derlenir ve bir kurulum dosyasına dönüştürülür.

Kaynak dosyayı kaybettiyseniz kod, ya da başka nedenlerle sizin için mevcut değilse, özel decompiler programları kullanın. Ayrıştırıcı programları da mevcuttur. Orijinali görüntülediğinizi unutmayın. kod geliştirmek için hangi programlama dilinin kullanıldığını bilmediğiniz durumlarda genellikle imkansız hale gelebilir.

Ücretsiz bir programın kodunu bulmak istiyorsanız, ilgili istekle İnternette bir arama yapın. Ayrıca bu programı indirmeyi deneyin ve menüsünde "Kaynağı görüntüle" öğesini bulun. kod". Bu genellikle yeniden dağıtılabilir programlar için kullanılabilir.

Bunları kullanırken dikkatli olun, özellikle bu, geliştiricinin sitesinden indirilmeyen programlar için geçerlidir, çünkü kaynak kodu bilgisayarınıza yüklendiğinde truva atları, tuş kaydediciler vb. yükleyen kötü amaçlı kod içerebilir.

Çoğu yazılım geliştiricisi, orijinali yeniden oluşturmayı zorlaştıran özel programlar kullandığından, kod çözücü programları kullanırken dikkatli olun. kod... Program Assembly dilinde yazılmışsa özel programlar da kabul edilir.

Oldukça az sayıda tersine mühendislik aracı vardır, bunları hileli amaçlarla veya kapalı kaynaklı programlarda değişiklik yapmak için kullanmayın, çünkü bu eylemler için genellikle yasalara uygun olarak belirli sorumluluklar sağlanır.

faydalı tavsiye

Kapalı programların koduna bakmayın ve dahası, üzerinde değişiklik yapmayın.

Program kodu gizlilik açısından farklı olabilir - birçok geliştirici bunu kamuya açık alanda yayınlamaz ve lisans sözleşmesinin şartları, kullanımı ve görüntülemesi ile ilgili olarak kullanıcılara kısıtlamalar getirir. Ayrıca görüntülenebilen, düzenlenebilen vb. açık kaynaklı programlar da vardır.

İhtiyacın olacak

  • - kaynak kodunu açmak için program.

Talimatlar

Görüntülemek istediğiniz yazılımın kaynak kodunun açık kaynak olduğundan emin olun. Bunu yapmak için yazılım geliştiricinin resmi web sitesine gidin ve lisans türünü görüntüleyin. Programın kaynak kodu kapalı ise görüntüleyemezsiniz. Bu elverişsizdir, ancak böyle bir sistemde Truva atları ve diğer kötü amaçlı programları içeren bir programın kopyaları oldukça nadirdir. Bu, özgür yazılımın ana dezavantajıdır.

Ücretsiz yazılımınız varsa, geliştirici tarafından böyle bir öğe sağlanmışsa, son derece nadir görülen "Kaynak Kodu" program menüsünde bulun. Diğer durumlarda görüntülemek için bir montajcı veya başka bir üçüncü taraf yazılımı kullanın.

Çoğu zaman, kaynağı açmak için, programın yaratıcılarının geliştirme sırasında hangi programlama dilini kullandığını bilmeniz gerekir, ki bunu belirlemek genellikle çok zordur. Burada, farklı dillerde yazılmış kaynakları açmak için bilgisayarınıza bir dizi farklı program yükleyebilirsiniz.

Ücretsiz yazılım kullanırken imkanınız varsa, özellikle program resmi olmayan bir kaynaktan indirilmişse kurulum işleminden önce kaynak kodunu inceleyin. Bu, bilgisayarınızı ana ile birlikte yüklenen kötü amaçlı yazılımlardan korumaya yardımcı olacaktır.

Ayrıca, programın kapalı kaynak kodunda değişiklik yapmak için çeşitli yöntemlere başvurmayın, genellikle bu gibi durumlarda kullanıcı ve geliştirici arasındaki lisans sözleşmesinin kurallarının ihlali için belirli bir sorumluluk vardır. Ayrıca, bu tür düzenlenmiş programları İnternet'te yayınlamayın.

İlgili videolar

faydalı tavsiye

Ücretsiz yazılım kaynaklarını kontrol edin.

Orijinali görüntüleme yeteneği kod kendinizi oluştururken çeşitli siteler çok yararlı olabilir alan... HTML kodunu, özel ayarları ve ek tarayıcı uzantılarını ve ayrıca metin dosyalarını görüntülemek için programları kullanarak görebilirsiniz.

İhtiyacın olacak

  • - tarayıcı programı;
  • - bir not defteri programı.

Talimatlar

Tarayıcınızda "Site kaynak kodu" menü öğesini bulun. Örneğin, Mozilla Firefox'ta ana menünün "Araçlar" öğesinde bulunan "Web Geliştirme" bölümünde bulunabilir ve Internet Explorer tarayıcısında html kod görünümü "Görünüm" den çağrılır. ana menünün öğesi. Kodunu incelemek istediğiniz siteye gidin. Sayfa yüklendikten sonra Site Kaynak Aracını seçin. Program, kodu göreceğiniz özel bir pencere gösterecektir. Sayfa içeriği yanlış görüntüleniyorsa, kodlamayı değiştirmeyi deneyin.

Standart tarayıcı işlevleri bir eklenti ile genişletilebilir. Genellikle program geliştiricinin sitesinde, sitenin kodunu görüntülemenize izin veren bir uzantı bulabilirsiniz. Örneğin, Mozilla Firefox eklentisine Opera tarayıcısı - DragonFly için Firebug adı verilir. Eklentiyi indirin ve kurun. Tarayıcınızı yeniden başlatmanız gerekebilir. Ardından, istediğiniz siteye gidin. Eklenti konsolunu çağırmak için düğmeye tıklayın - programın çalışma panellerinden birine yerleştirilebilir - bundan sonra açık sayfanın kaynak kodunun görüntüleneceği ek bir pencere görünecektir.

Uygun tarayıcı işlevini kullanarak sitenin gerekli sayfalarını kaydedin. Bunu yapmak için, "Dosya" ana menü öğesine tıklayın ve "Farklı kaydet" yazısını seçin. Bilgisayarınızda sayfanın bir kopyasını kaydedeceğiniz bir konum seçin. Ardından, "Tür olarak kaydet" başlıklı açılır menüden "Web Sayfası, Tamamen" veya "Web Sayfası, Yalnızca HTML"yi seçin. "Kaydet"e tıklayın. Prosedürü İnternet kaynağının gerekli tüm sayfalarıyla tekrarlayın. Dosyaların kaydedildiği klasörü açın. Sayfalardan birini seçin ve notepad programını kullanarak çalıştırın. Windows işletim sisteminde yüklü olan "Notepad" yardımcı programını kullanabilirsiniz, ancak daha uygun Notepad ++ programını indirmek daha iyidir. Farklı türdeki html etiketlerini renge göre ayırma işlevi vardır.

IMEI bir kimliktir kod mobil telefon... Cep telefonunuzun çalınması veya kaybolması durumunda, bu sayede onu bulmaya çalışabilirsiniz. kod y, içişleri organlarının çalışanlarından yardım isterseniz.

Talimatlar

IMEI'nizi öğrenin telefon* # 06 # kombinasyonunu tuşlayarak. Bir anda, bu kod... Böylece, kesinlikle herhangi bir hücresel modelin IMEI'sini öğrenebilirsiniz. telefon.

kutuyu elinden al telefon ve her yönden inceleyin. Bir cep telefonunun IMEI'si genellikle çubuğun yanında gösterilir. kod a ve bir dizi sayı veya kısa çizgi şeklindedir kod a. Bu kutunun namussuz kişilerin eline geçme ihtimali varsa, onu saklayın ki dikkatsizliğinizden faydalanmasınlar.

Belgeleri mobil cihazınızda inceleyin. Ayrıca genellikle IMEI'yi de listelerler. Satın alırken iletişim salonunda yaptığınız sözleşmeyi inceleyin telefon... IMEI, Model Adı ile aynı satırda listelenir.

Telefonunuzun bağlantısını kesin, arka kapağı açın ve pili dikkatlice çıkarın. Kasanın içinde üretici hakkında bilgi içeren bir çıkartma göreceksiniz. telefon, modellerin yanı sıra tanımlama kod... Ancak, bazı telefon modellerinde IMEI, uzun bir sayı dizisi şeklinde değil, yalnızca bir çubuk şeklinde belirtilebilir. kod a.

El telefonu almaya karar verirseniz, satıcıdan mobil cihazdaki tüm belgeleri size vermesini isteyin ve * # 06 # tuşlayarak veya telefonu açarak IMEI'yi kontrol edin.

Telefonunuz çalınırsa veya kaybolursa, önce operatörünüzü arayın ve numarayı engelleyin. Bundan sonra, polisle iletişime geçin ve polis memurlarına, kaçırma veya kaybolma olayının yeri ve zamanı hakkında sahip olduğunuz tüm bilgileri verin. Ama onlara söylemen gereken en önemli şey kimlik kod mobil cihazınız.

Herhangi bir nedenle IMEI'yi bulamadıysanız telefon, yalnızca öğrenmenize değil, size yardımcı olabilecek çeşitli programlar ve hizmetler sunan İnternet sitelerine başvurmayın. kod cep telefonu değil, aynı zamanda eski SIM kartın PIN ve PUK olmadan blokesini kaldırmak için. Telekom operatörlerinin veritabanlarına erişim olmadan bunu yapmak imkansızdır. Ve telekom operatörleri en yüksek düzeyde güvenlikle ilgilenir.

Yazılımınızı etkinleştirdiğiniz anahtarı, örneğin kayıt defterinde saklanan ve başlatıldığında veya başka programlar kullanıldığında erişilebilen programın lisans kodu gibi olağan şekilde görüntüleyemezsiniz. Lisans koduna göre, aktivasyon kodunu program geliştiricinin resmi web sitesinde görüntüleyebilirsiniz.

İhtiyacın olacak

  • - lisans kodunu görüntülemek için program.

Talimatlar

Everest 2006 yazılımını bilgisayarınıza indirin. Kurun ve çalıştırın. Ana pencerede, lisans kodunu öğrenmek istediğiniz ilgilendiğiniz yazılımı seçin. İhtiyacınız olan bilgiler pencerenin sağ tarafında görünmelidir. Ayrıca bir dosyaya kaydedebilir veya yazdırabilirsiniz. Her durumda, bu tür bilgiler en iyi şekilde elektronik biçimde veya biçimlendirmeyeceğiniz çıkarılabilir ortamlarda saklanmaz.

Bilgisayardan ayrı bir ürün olarak satın aldıysanız, diskteki programın lisans koduna, kutusundan vb. Ayrıca, yazılım ürün koduyla ilgili bilgiler işletim sistemi kayıt defterinde bulunur. Çalıştırmak için Başlat menüsünden Çalıştır'ı açın ve beliren kutuya regedit yazın.

Soldaki dizinlerde yazılımdan sorumlu öğeyi bulun. İhtiyacınız olan programı seçin, lisans bilgileri için klasörlere bakın. Kopyala.

Yukarıdaki yöntemlerden birini kullanarak elde edilen lisans kodunu yeniden yazın. Aktivasyon koduyla ilgilendiğiniz yazılım geliştiricisinin sitesine gidin. Sitede varsa, programları etkinleştirme ve kaydetme noktasını bulun. Yazılım ürününüz için lisans kodunu girin ve bunun için mevcut olan etkinleştirme kodunu görün. Bu yöntem, web sitesinde bir yazılım ürününün etkinleştirilmesi mevcut olduğunda genellikle uygundur.

Bu etkinleştirme yöntemi programınız için mevcut değilse, yeniden yüklerken kodu öğrenin. Kontrol panelindeki Program Ekle veya Kaldır öğesinden tamamen kaldırın ve bir lisans anahtarınız olduğundan emin olduktan sonra etkinleştirme kaydını silin. Kurulumdan sonra lisans kodunuzla eşleşen anahtarı görüntüleyerek aktivasyonu tamamlayın. Yeniden yaz.

faydalı tavsiye

Anahtarı tekrar alma prosedüründen geçmemek için gelecekte uygulamayı etkinleştirmek için gerekli bilgileri her zaman kaydedin.

Orijinali nasıl belirleyeceğinizi düşünün kod sayfalar, çünkü bu parametre İnternette çalışırken çok önemlidir. Herhangi bir habere, etikete veya resme ihtiyacınız varsa, ancak nasıl yazacağınızı bilmiyorsanız, orijinali öğrenerek her zaman başka bir siteden bilgi kopyalayabilirsiniz. kod sayfalar eğer o için değilse kod sitenin geliştiricileri tarafından oluşturuldu. aslı önemli kod orijinali kullanan program olmayan disk belleği dosyalarında kod ancak sayfalarla çalışabilir ve düzenleyebilirsiniz.

İhtiyacın olacak

  • Sayfanın kaynak kodunu görüntüleme talimatları.

Talimatlar

Görünür olması için aslı ile yazılmıştır. kod ohm. ile dökün kod Kaynağın sahibiyseniz veya bunun için özel uzantıları kullanarak not defteri, düzenleyici ile değiştirebilirsiniz. Kullanıcı, dosyayı düzenleyerek ve kendi sayfasını sayfaya ekleyerek de sayfayı değiştirebilir. In - tarayıcılar kaynağı görüntüler kod ancak çeşitli komutlar kullanılarak gerçekleştirilir, bunları daha ayrıntılı olarak ele alacağız.

Internet Explorer için "Görünüm" sekmesini ve ardından "Kaynak kod sayfalar»Veya farenin sağ tuşu ile öğe seçilebilir. Geliştiriciler tarafından şifrelenmek için kod bunda "servis" menüsüne, ardından "geliştirici araçları"na gidiyoruz, oka basın, istediğiniz öğeyi seçin ve kod olmak. Ardından, simgesine tıklayın ve kod metin biçiminde ve bileşenlerinden html'ye kopyalayın.

Mozilla Firefox tarayıcısı, basit bir "Ctrl + U" komutunu kullanarak görüntüleme veya "kaynağı görüntüle" alt dizesini seçme olanağı sağlar. kod". Özel bir Web Developer yükleyerek Mozilla Firefox'ta şifreli bilgileri görüntüleyebilirsiniz, menüden seçin “ kod"Dize" oluşturuldu kod"Ve aşağıda sayfalar orijinalin değeri kod a. Dosyayı panoya kopyalayın veya page.htm uzantısıyla kaydedin.

Google Chrome'u kullanırken, "araçlar" ana menüsünde "kaynağı görüntüle" alt dizesini seçin kod", Ardından öğeyi açmak için farenin sağ düğmesini kullanın" görünümü kod a sayfalar»Veya "Ctrl + U" tuşlarını kullanarak.

Safari tarayıcısı için menüde “html'yi görüntüle- kod", Ayrıca farenin sağ tuşuna basarak, "kaynağı görüntüle" alt dizesini açın veya "Ctrl + Alt + U" klavye kısayolunu kullanın.

Not

Kaynak kodla ilgili şifreli bilgileri görüntüleme yeteneği, iki tarayıcı kullanılarak gerçekleştirilir.

faydalı tavsiye

Site geliştiricisi değilseniz, sayfayı yalnızca kendi kullanımınız için değiştirebilirsiniz.

Program, aktivasyon kodunun oluşturulduğu temel alınarak lisans kodudur. Bu, İnternet bağlantısı veya telefon aracılığıyla iletişim yoluyla yapılır; ayrıca bazı geliştiriciler için başka etkinleştirme yöntemleri de sağlanır.

İnsanlar tarafından okunabilen herhangi bir programlama dili veya biçimlendirme dili. Genelleştirilmiş anlamda, bir çevirmen için herhangi bir girdi verisi. Kaynak kodu şu dile çevrildi: yürütülebilir kod tamamen program derleyici kullanılarak çalıştırılmadan önce veya yorumlayıcı kullanılarak hemen çalıştırılabilir.

Randevu

Kaynak kod ya nesne kodu üretmek için kullanılır ya da yorumlayıcı tarafından yürütülür. Değişiklikler yalnızca orijinalinde yapılır, ardından nesneye yeniden dönüştürülür.

Kaynak kodun bir diğer önemli amacı, bir programın açıklamasıdır. Programın metnini kullanarak davranışının mantığını geri yükleyebilirsiniz. Yorumlar, kaynak kodun anlaşılmasını kolaylaştırmak için kullanılır. Sözde kaynak kodundan belgeleri otomatik olarak almanıza izin veren araçlar da vardır. dokümantasyon jeneratörleri.

Ek olarak, kaynak kodun başka birçok kullanımı vardır. Bir öğretim aracı olarak kullanılabilir; Acemi programcılar, programlama tekniklerini ve metodolojilerini öğrenmek için mevcut kaynak kodunu incelemeyi faydalı bulabilirler. Ayrıca özlü ve açık doğası nedeniyle deneyimli programcılar arasında bir iletişim aracı olarak kullanılır. Geliştiriciler arasında kod paylaşımı, genellikle programlama deneyimini geliştirmeye katkıda bulunan bir faktör olarak belirtilir.

Programcılar genellikle kaynak kodunu (modüller olarak, olduğu gibi veya uyarlama ile) bir projeden diğerine, kodun yeniden kullanımı olarak adlandırılır.

Kaynak kodu, yazılımı diğer platformlara taşımak için önemli bir bileşendir. Herhangi bir yazılım parçasının kaynak kodu olmadan taşıma çok zor veya imkansızdır.

organizasyon

Yazılımın bir bölümünün (modül, bileşen) kaynak kodu bir veya birkaç dosyadan oluşabilir. Program kodu mutlaka tek bir programlama dilinde yazılmaz. Örneğin, C programları genellikle optimizasyon nedenleriyle derleme dili ekleri içerir. Bir programın bazı bileşenlerinin veya bölümlerinin farklı dillerde yazılması ve daha sonra bağlantı kitaplıkları olarak bilinen bir teknoloji kullanılarak tek bir yürütülebilir modülde birleştirilmesi de mümkündür ( kitaplık bağlama).

Karmaşık yazılımların oluşturulması için düzinelerce hatta yüzlerce kaynak dosya gerekir. Bu gibi durumlarda, derlemeyi basitleştirmek için, genellikle kaynak kodlu dosyalar arasındaki bağımlılıkları ve derleme sürecini tanımlayan proje dosyaları kullanılır. Bu dosyalar ayrıca derleyici ve tasarım ortamı için seçenekler içerebilir. Farklı tasarım ortamları için farklı proje dosyaları kullanılabilir ve bazı ortamlarda bu dosyalar evrensel metin editörleri kullanan bir programcı tarafından doğrudan düzenlemeye uygun bir metin formatında olabilir, diğer ortamlarda özel formatlar desteklenir ve dosyalar oluşturulur ve değiştirilir. özel enstrümantal programlar kullanarak. Proje dosyalarına genellikle kaynak kodu denir. Kaynak kodu genellikle, bir program oluşturmak için gereken grafikler gibi çeşitli verileri içeren kaynak dosyalarına atıfta bulunur.

Sürüm kontrol sistemleri, kaynak kodla çalışmayı kolaylaştırmak ve bir programcı ekibi tarafından kod üzerinde işbirliği yapmak için kullanılır.

Kalite

İnsanlardan farklı olarak, bir bilgisayar için "iyi yazılmış" veya "kötü yazılmış" bir kod yoktur. Ancak kodun yazılma şekli, bakım süreci üzerinde derin bir etkiye sahip olabilir. Kaynak kodunun kalitesi aşağıdaki parametrelerle değerlendirilebilir:

  • kodun okunabilirliği (varlığı dahil

Word, Microsoft Windows, WhatsApp veya her gün yüz milyonlarca insanın başlattığı bir tarayıcı gibi herhangi bir program veya çevrimiçi hizmet, şu veya bu şekilde özel talimatlardan oluşur. Veya makinenin anladığı özel program kodu, ona ne yapacağını veya tam tersine yapmamasını söyler. Veya kullanıcı eylemlerine nasıl düzgün yanıt verileceği. Program kodu nedir bu makalede ele alınacaktır.

Açıklama

Bir programın program kodu, bir makinenin anlayabileceği özel bir dilde yürütülen bir metindir. Bir tercüman kullanılarak doğrudan metinden yürütülebilir veya bir derleyici kullanılarak özel bir forma çevrilebilir.

Bir programın kaynak kodu birkaç dosyadan oluşabilir. Ayrıca, hepsinin aynı formatta olması gerekir. İçlerinde bulunan programın metni aynı dilde yazılmalıdır. Ancak, istisnalar olabilir. Örneğin, web geliştirmede bir sayfa dosyası birkaç farklı programlama dili ve standardı içerebilir. Projenin karmaşıklığına bağlı olarak PHP, HTML ve diğerleri gibi diller ve teknolojiler olabilir.

Montaj sırasında karmaşık yazılım paketleri, yüzlerce dosyaya ulaşabilen çok sayıda dosya gerektirebilir. Bu tür büyük projelerde işbirliği yapmak için programcılar sıklıkla sürüm kontrol sistemlerini kullanır. Belirli bir geliştirme aşamasında ortak bir kodda birleştirilebilen kaynak kodun birkaç kopyasıyla aynı anda çalışmanıza izin verir.

kod kalitesi

Bilgisayar, kodun nasıl yazıldığını, iyi veya kötü olduğunu anlayamaz. İşlevselse ve hata içermiyorsa, makine yine de başlatacaktır. Kötü kod, yazılım bakım görevlerini karmaşıklaştırabilir. Bu özellikle büyük projeler için geçerlidir. Genellikle, iyi bir kod birkaç parametre ile karakterize edilir:

  • Kodun okunabilirliği. Bir kod parçası tarafından neyin uygulandığını genel olarak anlamak için bir bakış yeterli olmalıdır.
  • Açık ve özlü yorumların varlığı. Bu parametre okunabilirliği, hata ayıklamanın kolaylığını, destek testini ve program kodu hatalarının ortadan kaldırılmasını büyük ölçüde etkiler.
  • Düşük karmaşıklık.
  • Kodun optimizasyonu. Program, bellek, işlemci süresi ve sabit disk alanı gibi mümkün olduğunca az sistem kaynağı kullanacak şekilde düzenlenmelidir.
  • Çöp eksikliği. Yani, program kontrolünün asla gelmediği değişkenler veya kod blokları kullanılmaz.

Zararlı kod

Yararlı programlara ek olarak, sisteme ve hatta donanıma zarar verebilecek bazı programlar vardır. Tipik olarak, bu kod, devam eden süreçten bir miktar fayda sağlamakla ilgilenen kişiler tarafından yazılır. Örneğin, kullanıcıların bilgisayarlarından kişisel verileri çalabilen programlar. Ödeme kartı numaraları, pasaport verileri veya başka herhangi bir gizli bilgi olabilir. Diğerleri sistemin çalışmasına müdahale edebilir, böylece çökmelere neden olabilir ve tam işlevselliğe müdahale edebilir.

Oldukça deneyimli bir programcı olan Jeff Vogel, yeni başlayan geliştiricilere iyi kod kurallarını öğretmek için birkaç ipucu paylaştı.

Özellikle, her zaman kodunuz hakkında yorum yapmanızı önerir. Yorum nedir? Bu, belirli bir kod veya işlev satırında ne olduğuna dair açık ve özlü bir açıklamadır. Gerçek şu ki, belirli bir programın geliştirilmesi bir ay sürebilir, hatta bir süreliğine durabilir. Birkaç ay içinde proje üzerinde çalışmaya geri dönersek, deneyimli bir programcı bile kendi programını anlamakta güçlük çekecektir. Ancak ayrıntılı yorumlar, olaylar zincirini ve kodun davranışını yeniden oluşturabilecektir.

Ayrıca, programınızda mümkün olduğunca sık global değişkenleri kullanmanızı önerir. Bunun nedeni, program kodunu değiştirirken değişkenin değerini tek bir yerde ayarlamanız gerekeceğidir. Bu durumda, değeri kullanan tüm işlevler veya prosedürler bunu hemen öğrenecek ve yeni verilerle işlemler gerçekleştirecektir.

Değişken isimleri ve hata tespiti

Değişkenlerin doğru adlandırılması, kod elle yazılmış olsa bile, programın kaynak kodunu incelemek için harcanan süreyi önemli ölçüde azaltmaya yardımcı olacaktır. Yani, iyi kod, değişkenlerin ve işlevlerin tam olarak ne yaptıklarını veya depoladıklarını anlayabileceğiniz adlara sahip olduğu bir metin olarak kabul edilir. Aynı zamanda uzun değişken isimleri kullanmamaya çalışmalısınız.

Hataların zamanında ortadan kaldırılmasına büyük önem vermek çok önemlidir. Mükemmel çalışan kod nedir? Bu, hatası olmayan koddur. Yani, döngünün herhangi bir dallanması veya bir değişkenin değiştirilmesi, hatta öngörülemeyen herhangi bir kullanıcı eylemi her zaman beklenen sonuca yol açacaktır. Bu, bitmiş ürünü birkaç kez test ederek elde edilir.

Program kodu hatalarının tanımlanması veya daha doğrusu tahmin edilmesi, program tasarımı aşamasında mümkündür. Koşullar ve olası istisnalar için çeşitli kontrollerin kodunda bulunması, programın belirli bir oranda kontrol edilmesine yardımcı olacaktır.

Optimizasyon, kod yürütme hatalarından kaçınırken bilgisayar kaynaklarını ekonomik olarak kullanacak, çalışabilir bir program yazmak için büyük önem taşımaktadır. Optimize edilmiş program nedir? Bu, "sessiz" ve ekonomik davranırken, beyan edilen tüm işlevleri yerine getirebilen bir üründür.

Hemen hemen her zaman, kararlı program çalışması için optimizasyon, yalnızca farklı platformlarda ve farklı koşullarda yapılan birkaç testin sonucu olarak elde edilebilir. Program öngörülemeyen bir şekilde davranmaya başlarsa, buna neyin sebep olduğunu belirlemeniz ve mümkünse süreci ortadan kaldırmanız veya durdurmanız gerekir.

Çözüm

Programlama kodu nedir? Basit bir ifadeyle, bu bir bilgisayar için bir dizi talimat ve kavramdır. Bir derleyicinin veya yorumlayıcının makine tarafından okunabilir bir dile dönüştürebileceği metin içerir. Yani, aslında, program kodu, bir kişi ile bir bilgisayar arasında, ilişkilerini basitleştiren bir aracıdır.

Bu insanlar tarafından okunabilir. Genelleştirilmiş bir anlamda, bir çevirmen için herhangi bir girdi. Kaynak kodu şu dile çevrildi: yürütülebilir kod tamamen program derleyici kullanılarak çalıştırılmadan önce veya yorumlayıcı kullanılarak hemen çalıştırılabilir.

Üniversite YouTube'u

    1 / 3

    Bilim gösterisi. Sayı 33. Bilimsel Hatalar 2

    Programlamanın Temelleri: Kaynak Kodu

    1. soruların cevapları: Kaynak kodu

    Altyazılar

Randevu

Kaynak kod ya nesne kodu üretmek için kullanılır ya da yorumlayıcı tarafından yürütülür. Nesne kodunda hiçbir zaman değişiklik yapılmaz, yalnızca orijinal kodda değişiklik yapılır ve ardından nesne koduna yeniden dönüştürülür.

Kaynak kodun bir diğer önemli amacı, bir programın açıklamasıdır. Programın metnini kullanarak davranışının mantığını geri yükleyebilirsiniz. Yorumlar, kaynak kodun anlaşılmasını kolaylaştırmak için kullanılır. Sözde kaynak kodundan belgeleri otomatik olarak almanıza izin veren araçlar da vardır. dokümantasyon jeneratörleri.

Ek olarak, kaynak kodun başka birçok kullanımı vardır. Bir öğretim aracı olarak kullanılabilir; Acemi programcılar, programlama tekniklerini ve metodolojilerini öğrenmek için mevcut kaynak kodunu incelemeyi faydalı bulabilirler. Ayrıca özlü ve açık doğası nedeniyle deneyimli programcılar arasında bir iletişim aracı olarak kullanılır. Geliştiriciler arasında kod paylaşımı, genellikle programlama deneyimini geliştirmeye katkıda bulunan bir faktör olarak belirtilir.

Programcılar genellikle kaynak kodunu (modüller olarak, olduğu gibi veya uyarlama ile) bir projeden diğerine, kodun yeniden kullanımı olarak adlandırılır.

Kaynak kodu, yazılımı diğer platformlara taşımak için önemli bir bileşendir. Herhangi bir yazılım parçasının kaynak kodu olmadan taşıma çok zor veya imkansızdır.

organizasyon

Yazılımın bir bölümünün (modül, bileşen) kaynak kodu bir veya birkaç dosyadan oluşabilir. Program kodu mutlaka tek bir programlama dilinde yazılmaz. Örneğin, C programları genellikle optimizasyon nedenleriyle derleme dili ekleri içerir. Bir programın bazı bileşenlerinin veya bölümlerinin farklı dillerde yazılması ve daha sonra bağlantı kitaplıkları olarak bilinen bir teknoloji kullanılarak tek bir yürütülebilir modülde birleştirilmesi de mümkündür ( kitaplık bağlama).

Karmaşık yazılımların oluşturulması için düzinelerce hatta yüzlerce kaynak dosya gerekir. Bu gibi durumlarda, derlemeyi basitleştirmek için, genellikle kaynak kodlu dosyalar arasındaki bağımlılıkları ve derleme sürecini tanımlayan proje dosyaları kullanılır. Bu dosyalar ayrıca derleyici ve tasarım ortamı için seçenekler içerebilir. Farklı tasarım ortamları için farklı proje dosyaları kullanılabilir ve bazı ortamlarda bu dosyalar evrensel metin editörleri kullanan bir programcı tarafından doğrudan düzenlemeye uygun bir metin formatında olabilir, diğer ortamlarda özel formatlar desteklenir ve dosyalar oluşturulur ve değiştirilir. özel enstrümantal programlar kullanarak. Proje dosyalarına genellikle kaynak kodu denir. Kaynak kodu genellikle, bir program oluşturmak için gereken grafikler gibi çeşitli verileri içeren kaynak dosyalarına atıfta bulunur.

Sürüm kontrol sistemleri, kaynak kodla çalışmayı kolaylaştırmak ve bir programcı ekibiyle kod üzerinde işbirliği yapmayı kolaylaştırmak için kullanılır.

Kalite

İnsanlardan farklı olarak, bir bilgisayar için "iyi yazılmış" veya "kötü yazılmış" bir kod yoktur. Ancak kodun yazılma şekli, bakım süreci üzerinde derin bir etkiye sahip olabilir. Kaynak kodunun kalitesi aşağıdaki parametrelerle değerlendirilebilir:

  • kodun okunabilirliği (varlığı dahil

(HCS08 Mikrodenetleyici Ailesi Geliştirici Kılavuzu)

Örnek 12.1'de flash belleğe kendi verilerinizi yazmanızı ve silmenizi sağlayan koda bakacağız. Bu tür işlemler, herhangi bir cihazın kullanıcısı bu cihaz için ek ayarlar yaparsa ve güç kapatıldıktan sonra seçilen konfigürasyonun kaydedilmesini isterse gereklidir.

Daha önce, HCS08 ailesinin MC'lerinin flash belleğin silinmesine ve programlanmasına izin vermediğini, bu modları kontrol etmek için programı flash bellekten de çalıştırdığını belirtmiştik. Öncelikle silme ve programlama işlemlerinden sorumlu program kodunu RAM'e yeniden yazmak ve ardından bu kodu çalıştırmak için çalıştırmak zorunludur. Silme ve programlama sırasında flash bellek modülüne aşırı gerilim uygulanacaktır. Ancak bu, programın bozulmasına yol açmayacaktır, çünkü şu anda RAM'den yürütülecektir.

NXP, bir cihaz işletim programının kontrolü altında flash belleği programlamak için kendi programlama kodunuzu yazmayı kolaylaştıran bir dizi montaj dili yardımcı programı geliştirmiştir. Bu yardımcı programlar dosyada bulunur doonstack.asm... Bu dosya, Şekil 2'de gösterildiği gibi projeye dahil edilmelidir. 12.3.

Pirinç. 12.3. Dahil edilen dosya ile proje penceresi doonstack.asm.

Dosya içeriği doonstack.asm aşağıda sunulmuştur. Kullanılan program kodunun orijinal metni verilmiştir, bu nedenle yorumlar çevrilemez.


; * Bu kırtasiye, bir * için çerçeve olarak hizmet etmek içindir.
; * kullanıcı uygulaması. Daha kapsamlı bir program için *
; * bunun daha gelişmiş işlevselliğini gösterir *
; * işlemci, lütfen tanıtım uygulamalarına bakın *
; * örnekler alt dizininde bulunur *
; * HC08 Program dizini için Metrowerks Codewarrior *
;**************************************************************
; dışa aktarma sembolleri
XDEF DoOnStack
XDEF FlashSil
XDEF FlashProg
; sembol olarak dışa aktarma "Girişi" kullanıyoruz. Bu bize izin verir
; linker .prm dosyasında "Giriş"e başvurun
; veya daha sonra C / C++'dan

; türev özel makroları dahil et
"MC9S08GB60.inc" dahil

Sonraki iki satır yorumlanmamalı ve istenen değerler atanmalıdır.

; mPageErase equ $ 40
; mByteProg eşdeğeri 20 $
mFACCERR eşdeğeri 10 $
mFPVIOL eşdeğeri 20 $
mFCBEF eşdeğeri 80 $
; değişken / veri bölümü
MY_ZEROPAGE: KISA BÖLÜM
; Buraya veri tanımınızı ekleyin. Gösterim için temp_byte kullanılır.
; temp_byte ds.b 1
; kod bölümü
Kodum: BÖLÜM
;**************************************************************
; bu derleme rutinine C/C++ uygulaması denir
DoOnStack: pshx
pshh; işaretçiyi flaşa kaydet
psha; komutu yığına kaydet
ldhx #SpSubEnd, yığına geçmek için son baytı işaret edin;
SpMoveLoop: lda, x; flaştan oku
psha; yığının üzerine git
aix # -1; taşınacak sonraki bayt
cphx # SpSub-1; geçmiş son mu?
bne SpMoveLoop; yığının tamamına kadar döngü
tsx; yığında alt noktayı işaret et
tpa; test için CCR'yi A'ya taşıyın
ve # 08 $; I maskesini kontrol edin
bne I_set; zaten ayarladıysam atla
sei; FLASH meşgulken kesintileri engelle
lda SpSubSize + 6, sp; komut için verileri önceden yükle
cli; tamam temizlemek için şimdi maskeliyorum
bra I_cont; tahsisi kaldırmaya devam et
I_set: lda SpSubSize + 6, sp; komut için verileri önceden yükle
jsr, x; yığında alt yürüt
I_cont: ais # SpSubSize + 3; alt gövdeyi serbest bırak + H: X + komutu
; H: SpSub'dan X flaş işaretçisi Tamam
lsla; PVIOL veya ACCERR olmadığı sürece A = 00 & Z = 1
rts; DoOnStack'in çağrıldığı yeri yanıp sönmek için
;**************************************************************
SpSub: ldhx LOW (SpSubSize + 4), sp; yığından flaş adresi al
sta 0, x, flaşa yaz; mandal adresi ve veri
lda SpSubSize + 3, sp; flash komutu al
sta FCMD; flash komutunu yazın
lda #mFCBEF; komutu başlatmak için maske
sta FSTAT; kayıt komutu
nop; [p] w döngüsünden r'ye minimum 4 ~ istiyorum
ChkDone: lda FSTAT; yani FCCF geçerlidir
lsla; FCCF şimdi MSB'de
bpl ChkDone; FCCF = 0 ise döngü
SpSubEnd: rts; flaşta DoOnStack'e geri dön
SpSubSize: equ (* -SpSub)
;**************************************************************
FlashErase: psha; DoOnStack girişi için sp'yi ayarlayın

lda #mPageErase; sayfa silme komutu için maske kalıbı
bsr DoOnStack; yığın tabanlı alttan bitiş komutu
rts
;**************************************************************
FlashProg: psha; giriş verilerini geçici olarak kaydet
lda # (mFPVIOL + mFACCERR); maske
sta FSTAT; herhangi bir komutu iptal et ve hataları temizle
lda #mByteProg; bayt prog komutu için maske kalıbı
bsr DoOnStack; yığın RAM'den prog kodunu yürütün
ais # 1; veri konumunu yığından ayırın
rts
;**************************************************************

Ayrıca, C program kodunun metninde yönergeye ihtiyacınız var. #Dahil etmek dosya bağla doonstack.h, metni aşağıda sunulmuştur.


/* */
/ * Proje Adı: doonstack.h * /
/ * Son değiştirilme tarihi: 11.04.2004 * /
/ * Gönderen: r60817 * /
/* */
/* */
/**********************************************************************/
/* */
/ * Açıklama: MC9S08GB60_FLASH_DOONSTACK - demo * /
/* */
/* */
/ * Belgeler: MC9S08GB60 / D Rev. 2.2 * /
/ * HCS08RMv1 / D Rev. 1 (4.8FLASH Uygulama Örnekleri) * /
/* */
/ * Bu yazılım Mühendislik Örnek Yazılımı olarak sınıflandırılmıştır. * /
/* */
/**********************************************************************/
/* */
/ * FREESCALE tarafından bu konuda gerçekleştirilen hizmetler OLDUĞU GİBİ gerçekleştirilir * /
/ * ve herhangi bir garanti olmaksızın. MÜŞTERİ nihai kararı saklı tutar * /
/ * son ürünün toplam tasarımına ve işlevselliğine göre. * /
/ * FREESCALE MÜŞTERİ'ye ne garanti verir ne de sorumluluk kabul eder * /
/ * bu projenin başarısı için. FREESCALE TÜMÜNÜ REDDEDER * /
/ * AÇIK, ZIMNİ VEYA YASAL GARANTİLER DAHİL ANCAK * / DEĞİLDİR
/ * SINIRLI, ZIMNİ SATILABİLİRLİK VEYA UYGUNLUK GARANTİSİ * /
/ * SAĞLANAN HERHANGİ BİR DONANIM, YAZILIM İÇİN ÖZEL AMAÇLI CEVHER TAVSİYESİ * /
/ * PROJE ÜZERİNDEN SERBEST ÖLÇEKLE VE YA DA * SONUCUNDA OLUŞAN ÜRÜNE YOKTUR /
/ * SERBEST ÖLÇEKLİ HİZMETLER. HİÇBİR DURUMDA FREESCALE * /
/ * BU SÖZLEŞMEDEN KAYNAKLANAN ARIZİ VEYA DOLAYLI ZARARLAR. * /
/* */
/ * MÜŞTERİ, FREESCALE'i herhangi birine karşı zararsız tutmayı kabul eder * /
/ * herhangi bir zarar nedeniyle herhangi birinin talep veya eylemlerini talep etme veya * /
/ * ticari, sözleşmeye dayalı veya dolambaçlı, artan yaralanma * /
/ * tavsiye veya yardımın bir sonucu olarak doğrudan veya dolaylı olarak * /
/ * MÜŞTERİ'ye ürün, hizmet veya mallarla bağlantılı olarak sağlanan * /
/ * bu Sözleşme kapsamında sağlanır. * /
/* */
/**********************************************************************/
/*
- main.c ve doonstack.asm arasındaki bu dosya API'si
*/
#ifndef _doonstack
#define _doonstack
#ifdef __cplusplus
extern "C" (/ * derleme işlevlerimiz C çağırma kuralına sahiptir * /
#endif
geçersiz DoOnStack (geçersiz); / * DoOnStack rutini için prototip * /
void FlashErase (imzasız karakter *); / * FlashErase rutini için prototip * /
/ * Sayfa Silme komutu * /
void FlashProg (imzasız karakter *, imzasız karakter); / * FlashProg rutini için prototip * /
/ * Bayt Program komutu * /
#ifdef __cplusplus
}
#endif

#endif / * _doonstack * /
/**********************************************************************/

Örneğimizde, kalıcı veri yazmak için 512 baytlık bir blok ayrılmıştır. Bu blok boyutu, MC9S08QG8 mikro denetleyicide silinmesi için izin verilen minimum flash bellek hücresi miktarı olduğu için seçilmiştir. Seçilen blok, MK'nin yerleşik flash belleğinin adres alanının başlangıcında yer alacaktır: 0xE000'den 0xE1FF'ye. Program kodu 0xE200'de başlayacak ve 0xFFFF'ye kadar adres alanını kaplayabilir.

Verilerin ve program kodlarının amaçlanan yerleşimini uygulamak için dosyadaki linker ayarlarını değiştirmelisiniz. proje.prm.

Standart projede bir giriş vardı:


ROM = SADECE OKUYUN 0xE000 - 0xFFAD;

Değiştirilmelidir:

SEGMENTS / * Burada cihazın tüm RAM / ROM alanları listelenmiştir * /
ROM = SADECE OKUYUN 0xE200 - 0xFFAD;

Örneğimizde, program kodu alanının yazma koruma modunu da kullandık, yani. 0xF200'den 0xFFFF'ye adres alanı. İncirde. 12.4, 0xF200 ... 0xFFFF adres alanını yanlışlıkla silinmeye / yazmaya karşı koruyan FPROT kaydı için kod oluşturma işlemini gösterir. Korumasız adres alanının son adresi olan 0xF1FF'nin en önemli yedi biti FPROT kaydına yazılmalıdır.

Adres A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0xE1FF 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1
FPROT FPS7 FPS6 FPS5 FPS4 FPS3 FPS2 FPS1 FPDIS
0xE0 1 1 1 0 0 0 0 0

Pirinç. 12.4. FPROT kaydı için koruma kodu kaydının oluşturulması.

Örnek 12.1. Flash bellekte kalıcı verilerle işlemler

// Demo kartı DEMO9S08QG8
// yerleşik flash belleği sil / yaz / oku
#include / * EnableInterrupts makrosu için * /
#include "derivative.h" / * çevresel bildirimleri içerir * /
#include "hcs08.h" / * Bu bizim beyanname dosyamızdır! * /
#include "doonstack.h"
#define BUSCLK 8000000
#define vFCDIV (BUSCLK / 200000-1)
char fdata, işlem;
imzasız int geçici adres;
// Yazmaya karşı korumalı bir adres alanı atayın: 0xE200 - 0xFFFF
const bayt NVPROT_INIT @ 0x0000FFBD = 0xE0;
// MK'yi başlat
geçersiz mcu_init (geçersiz)
{
SOPT1 = bBKGDPE; // BKGD hata ayıklama satırı işlevini etkinleştir
ICSSC = NV_FTRIM; // FTRIM trim değerini yaz
ICSTRM = NV_ICSTRM; // TRIM trim değerini yaz
ICSC2 = 0; // ICSOUT = DCOOUT / 1
// BUSCLK = 8 MHz
FCDIV = vFCDIV; // FCLK frekansı için bölücü kodunun değerini yazın
// (FCLK = 200 kHz)
}
#pragma satır içi
// Belirli bir adrese sahip bir bellek hücresinden bir bayt okuma işlevi
char flash_read (imzasız int adresi)
{
imzasız karakter * işaretçisi;
işaretçi = (char *) adresi;
dönüş (* işaretçi);
}
// Belirli bir adrese sahip bir bellek konumuna bayt yazma işlevi
char flash_write (imzasız int adresi, imzasız karakter verisi)
{
imzasız karakter * işaretçisi;
işaretçi = (char *) adresi;
FlashProg (işaretçi, veri); // Flash programlama fonksiyonunu çağırın
if (FSTAT_FACERR) veri = 1; başka veri = 0;
if (FSTAT_FPVIOL) verisi | = 2;
dönüş (veri);
}
// Flash bellek alanındaki belirli bir bloğu silme işlevi
unsigned char flash_sector_erase (imzasız int adresi)
{
imzasız karakter * işaretçi, res;
işaretçi = (char *) adresi;
FlashErase (işaretçi);
if (FSTAT_FACERR) res = 1; başka res = 0;
if (FSTAT_FPVIOL) res | = 2;
dönüş (res);
}
geçersiz ana (boş)
{
mcu_init();
fdata = 0;
geçici adres = 0xE000;
işlem = 0;
süre (1)
{
anahtar (çalışma)
{
durum 1: // bloğu sil
fdata = flash_sector_erase (faddress);
işlem = 0;
kırmak;
durum 2: // bayt yaz
fdata = flash_write (faddress, fdata);
işlem = 0;
kırmak;
durum 3: // Bayt oku
fdata = flash_read (faddress);
işlem = 0;
kırmak;
}
}
}

Örnek 12.1'deki program kodunu test etmek için metodolojiyi düşünün. Bunu yapmak için, hata ayıklayıcı penceresinde Veriüç değişken ekleyin: moda, fdata, operasyon... Ayrıca pencereyi örneğin 200 ms sonra periyodik güncelleme moduna ayarladık.

Yürütme için program kodunu çalıştırmadan önce bir değişkene yazın moda yazma adresi ve değişkende fdata- yazılacak veri baytı. Değişkenin devamı operasyon 0x02 kodunu yazın. Örnek kodu çalıştırdıktan sonra, veri baytı seçilen flash bellek konumuna yazmaya başlayacaktır. Lütfen seçilen hücrenin silinmiş durumda olması gerektiğini unutmayın, yani. 0xFF kodunu içermelidir.

0xE00 ... 0xE1FF bellek bloğunu silmek için şu adrese yazın: moda belirtilen aralıktaki herhangi bir adres ve değişkeni ayarlayın operasyon c 1. Ardından, yürütme için kodu yeniden çalıştırın.

Flash bellekten veri okumak da kolaydır. Bunu yapmak için değişkene yazın moda adres kodu, bir değişkene operasyon- 0x03 kodu. Seçilen flash bellek konumunun içeriği bir değişkende görüntülenecektir. fdata program kodunu çalıştırdıktan sonra.

Lütfen işlevlerin flash_write () ve flash_sector_erase () türde bir değişken döndür hırpalamak eylemi gerçekleştirirken bir hata kodu ile: 0 - hata yok, 0x02 - erişim hatası var, 0x04 - korunan adres alanını silme / yazma girişimi oldu. Bu işlevlerin her ikisi de yürütülmeleri için yaklaşık 35 bayt yığın bellek gerektirir. Yığının gerçek alanı daha küçükse, ölümcül bir hata meydana gelir. Programı yalnızca MK'yi sıfırlayarak çalışacak şekilde geri yüklemek mümkün olacaktır.

Hata ayıklayıcıdaki flaş değişiklikleri görmek için hata ayıklayıcı yapılandırmasında bazı değişiklikler yapmanız gerekir. Varsayılan ayarların ardından hata ayıklayıcı, bir hata ayıklama oturumu başlattıktan sonra MK flash bellek alanını yalnızca bir kez okur. Yapılandırmayı değiştirmek için hata ayıklayıcının ana menüsündeki seçeneği seçin. MultilinkCyclonPro> Bellek Haritasında Hata Ayıklama... Şekilde gösterilen pencere. 12.5, a. Bu pencerede seçin bellek bloğu 3 ve düğmeye basın Değiştir / Ayrıntılar... Şekil 2'de gösterilen yeni pencerede. 12.5, b, işaretli seçeneği seçin. Bu, hata ayıklayıcının bellek penceresini periyodik olarak yenilemesine olanak tanır.

Pirinç. 12.5. Bellek penceresinin içeriğini periyodik olarak güncellemek için hata ayıklayıcı yapılandırmasını değiştirin.