Web tarayıcınızın neyi kontrol etmenize izin verdiği. İnternet bağlantısı ve İnternet bilgisi. Öncelik sırasına göre kuralların durumu

Blogumun tüm okuyucularıyla Roman Chueshov ile iletişim kuruyorum. İnsanların kâr etme kokan programlardan endişe duymadan gidebildikleri kadar ileri gitmeleri zaten çok kolay. İnternet tarayıcısının ne olduğunu ve nasıl çalıştığını biliyor musunuz? Her şey bugünle ilgili. Bilgisayarınıza birden fazla tarayıcı kurmanın ve bunları doğru şekilde kurmanın neden önemli olduğunu açıklayacağım bu makaleyi sonuna kadar okumanızı tavsiye ederim. Hadi, devam et.

Web Tarayıcısı olduğu gibi

Önce tarayıcıyı tanımaya başlayacağım.

Bir web tarayıcısı (başka bir isim), web sitelerinin yerleşimini ve bunlarda bulunan bilgileri görüntülemenizi sağlayan özel bir programdır.

Bu şekilde çalışır:

  • program http isteğini bilgileri kaldırmaya zorlar;
  • sunucu erişim izni verir;
  • program, belirlenmiş standartlardan veri toplar;
  • Yorumlanan görüntü kodu ekranda görünür.

Tarayıcılar, İnternet keşfedilir keşfedilmez ortaya çıktı ve yavaş yavaş tüm elektronik cihazları doldurdu. Bugün bilgisayarınıza, tabletinize veya akıllı telefonunuza web tarayıcılarından biri yüklenecek.

Web Tarayıcısının yaratılış tarihi

Grafik arayüze sahip en büyük Web Tarayıcısı haline geliyor. Ancak bu şirketin geliştiricileri Netscape'e taşınıp yeni bir ürün geliştirmeye başladıktan sonra Mosaic geliştirmesi başlatıldı. Neyse ki çıktı kodu Microsoft'un eline geçti. Sonuç olarak dünyaca ünlü Vidomy doğdu İnternet Explorer.

Burada şaşkınlıkla haykırabilecek pek çok insan var: IE neden bu kadar popüler oldu da Mosaic hakkında pek bir şey duymadı? Sağda, Microsoft çok önemli ve görünüşe göre çok akıllı bir hamle yaptı - tarayıcıyı işletim sistemi için zorunlu bir güncelleme olarak dahil etti (o zamanlar Windows 95'ti). Koristuvach'ların seçenekleri tükendi - koku koristuvachi'nin kendisiydi IE.

İnternet Explorer Piyasayı hızla fetheden (% 95 - neredeyse tüm dünya) ve Netscape robotunun işi bitti. Bu durumda, projeyi kapatan geliştiriciler, eksik kodu ücretsiz bir lisans altında yayınladılar, böylece gelecekte onu oluşturmak için kullanabileceklerdi.

1995'te bir de çocuk doğdu Opera. Bu iki bakış açısı, başarıyla sömürdükleri pazarı biraz ikiye katlamak için hızla gelişmeye başladı. Ve Microsoft harekete geçmese de (gerçekten tekel olduğunuza göre zengin olmak mümkün mü?!), Masila ve Opera popüler olmaya başladı. Piyasa yeni bir ürünün yaratılmasına doğru ilerledikçe, mallar için gerçek savaş başladı.

Suchasni Web Tarayıcısı

Web Tarayıcısının kavramlarını öğrendikten sonra, her şeyden memnun kalacak şekilde program seçmeye devam edebilirsiniz. Birkaç tanesi daha kaybedildi; çoğu hâlâ yüzüyor.

Peki, en popüler olanlar:

  • Opera;
  • İnternet Explorer;
  • Elma Safarisi;
  • Yandex'in tarayıcısı.

Google Chrome şu anda en güçlü tarayıcıdır. Bu ürünler Chromium'u temel alır ve WebKit motorunda çalışır. Kısa bir süre için pazarın %25'ini kazanabiliriz.

Sayfaların basitliği, işlevselliği ve esnekliğinin yanı sıra çeşitli uzantıların görünürlüğü açısından da değer kazanmıştır. Google'ın ana rakibi olan Yandex'in yakın zamanda programın versiyonunu sunması dikkat çekicidir. Pitannya, neden koristuvach'lar seni baştan çıkarmak istesin ki? Öyle düşünüyorum, istiyorum.)

Mozilla Firefox, Rusya'nın yanı sıra Almanya ve Polonya'da da popüler. Ancak yavaş yavaş konumunu kaybeder ve kısa sürede Opera seviyesine ulaşabilir. Geri kalanına gelince, vikorystov mobil cihazlar için önemli hale geldi ve hemen unutulmaya yüz tuttu. Aynı şeyler izole bölümlerin kenarlarında mücadele eden IE'den de geliyor.

Okremo varto tahmin etmek Safari Apple ürünleri için özel olarak oluşturulmuş. Mac OS X ve iOS'ta yüklü programların listesini girin.

Ve Phoenix ve Amigo ekseni, koristuvach'ların oldukça fazla bulduğu tarayıcılardır. Kokular ücretsizdir ve belirli siteleri ziyaret ettiğinizde otomatik olarak yüklenir. Bilgisayarınızdan kaldırmak istediğiniz virüsü bir an önce tahmin etmenizde fayda var.

Unutmayın, eğer web siteleriyle çalışıyorsanız, bir web kaynağını tarayıcınızda doğru şekilde nasıl görüntüleyeceğinizi hatırlamanız çok önemlidir. Çünkü O halde sitenin düzeniyle meşgulüz. Tarayıcıdaki görsel görünümde etiketleri kullanarak blogun düzenini Photoshop'ta yeniden oluşturun.

Günümüzün kullanıcıları farklı tarayıcılar kullanıyor ancak bilgilerin (web sitesinin) görüntülenmesi onlar için daha da önemli.

Bilgisayarımda en yeni tarayıcıların tümü yüklü: Google Chrome, Mozilla Firefox, Opera, Internet Explorer, Windows için Apple Safari, Yandex Tarayıcı. Bunları internette resmi web sitelerinde hiçbir ücret ödemeden çekebilirsiniz.

Şimdilik bu kadar. Tarayıcılarınızı bilgisayarınıza kurun ve bu bölümdeki yazıları okuyun; sorunsuz ve kesintisiz çalışma için onları nasıl doğru şekilde yapılandıracağınızı öğreneceksiniz.

Saygılarımla, Roman Chueshov

İyi günler, Start-Luck blogunun okuyucuları. Basit beslenmeyle ilgili bazı fikirler, insanların daha önce hiç duymadığı tuhaf konuşmaları ortaya çıkarabilir. Az önce bir ampul, mikro tüylü bir kuş ve bir testere emiciyle hışırdamak için seslendik.

Makinelerin nasıl çalıştığı ve yeni bir seviyeye nasıl ulaşılacağı hakkında bir makale görmek isterim. Bir insan olarak çalışmaya başladığınızda, çok geçmeden kötü bir elektrikçi ya da nazik davranmanın sorun olmadığı her işte usta biri haline gelirsiniz.

Bugün diğer konuşmalarla ilgili birkaç söz var. Tarayıcılardan ve çalışma prensiplerinden bahsedelim. İyi bir tarayıcınız varsa, bu makaleden sonra sitelerin etkisiyle gücünüzün tükenmemesi pek olası değildir. Kimden şüphem yok.

Yak vlashovany web sitesi

Herhangi bir elektronik kaynak, bir dosya koleksiyonu anlamına gelir. Bazıları tasarımı, diğerleri ise test ambarını temsil ediyor. Ek özel programlar için lütfen yazınız. Tüm web sitesi yaratıcıları kodu anlamaz, ancak eylemleri kod ve dosyalara dönüştüren basit programlar kullanırlar.

Siteye tarayıcılar tarafından görüntülendiği haliyle bakarsanız, diğer dosyaların yer alacağı belirsiz bir isme sahip bir klasör oluşturacaksınız. Bunlardan birine baktığınızda hiçbir şey anlayamazsınız.

Bu belge seti yayıncının bilgisayarında bulunur ve okuyuculara erişilemez. Koku internette değil. Yardım etmek için siteyi herkese açık olarak açın. Kabaca konuşursak, web sitelerinin bulunduğu klasörlerin depolandığı büyük flash sürücülere benzer bir şeyleri var.

Her klasöre bir URL veya daha basit ifadeyle bir adres atanır. Tarayıcınızın adres çubuğuna girin, sizi nazikçe klasöre yönlendirecektir. Tarayıcıları durdurmanın tek yolu bu değil, ancak bir sonraki bölümde bunun hakkında konuşacağız.

Tarayıcı misyonu

Daha önce de söylediğim gibi paralı askerlere yardım eden programların olduğu şarkılar var. Ve bunlar, siteyi kodun kendisini bilmeden, yalnızca klasöre bakarak değil, tamamen yeni bir şekilde görüntülemek için gereken tarayıcılardır.

Örneğin programcı şöyle diyor: "Makalenin ekseni ve bu ifadeye tıklayan kişinin sitemin başka bir tarafına geçmesi gerekiyor." Şarkı kodunu buraya girin. Endişelenmeyin, tarayıcı bunu umursamaz ve okuyucu bunu hemen sandalyenizden mesaj göndermek kadar basit bir şekilde görür.

Programlamayı öğrenmek ilk bakışta düşündüğünüz kadar kolay değildir. Hayatınızı basitleştirmenize ve internette çalışmanıza olanak tanıyan birçok basit şey var. Çaydanlıkların ustalığın inceliklerinde ustalaşmasına yardımcı olan daha az el yazısı yok. Örneğin, " WordPress 4: web sitesi oluşturma alıştırması yapın "Mihaila Rusakova. Dersler daha da basit. Örneğin cilt bakımı referans sitesi olarak kullanılabilir.


Peki neden tarayıcılara ihtiyacımız var, seninle anlaştık. Şimdi oradaki kokuya hayret edelim.

sınıflandırma

Dedikleri gibi tarayıcıları ayırmak zor. Aldatılan sizler için değil; koku neredeyse aynı. Aradaki fark esas olarak arayüzde, ancak basitlikte ve önemsiz nüanslarda yatmaktadır.

Bugün bu konuyu bir kereden fazla denedim: Google Chrome, Yandex Tarayıcı, Opera, Mozilla. Onları bu şekilde bölmeyi hayal edemiyorum.

Size basit bir alternatif sunacağım. Sığır levreği söz konusu olduğunda stok, fiyat, hazırlama yöntemi (füme, haşlanmış) ile sınıflandırılabilir. Çok fazla tarayıcı yok ve hepsi yaklaşık olarak aynı, bu yüzden yalnızca tarayıcıya göre bölünebilirler, ancak bana gelince bu berbat bir sınıflandırma.

Ne olursa olsun çalışma prensipleri ve misyonları aynıdır. Peki insanlar tarayıcıları nasıl soyarlar? Önemli olan arayüz. Bütün küçük koşuşturmacalar ortalıkta dolaşıyor ve halkın sesi onlara sesleniyor. Örneğin Yandex Tarayıcı'ya giriş yaptığınızda işinize yarayabilecek yeni ürünleri okumaya teşvik edileceksiniz. Koristuvach'ların içtiği şey bu.

Görünüşe göre Google Chrome tarayıcısı swidden web sitelerini açıyor. Bunun ne kadarının doğru olduğunu söyleyemem. Özellikle bazı tarayıcılarla ve herkesin internette saklanma yeteneğiyle ilgileniyorum. Yandex'in turbo modlarını doğrulamasına izin verin, ancak akşam ağ yeniden yapılandırılırsa ve torrent tamamen çalışırsa, sayfayı bir saniye içinde indiremezsiniz.

Bir tarayıcı nasıl seçilir, bir tarayıcı nasıl yüklenir ve hangisini en yararlı bulduğunuzu merak edin. İşte hepsi bu. Ayrıca net bilgiler almak için bültene abone olun.

Yeni zorluklara ve iyi şanslara kadar.

Bilgisayarınız bu materyalin işlevselliğini desteklemiyor olabilir.

ForEach.call(document.querySelectorAll("başlık .tarih a"), function(elem, i) ( elem.textContent += " (" + ["yazar","editör"][i] + ")"; ) );

Peredmova

Bu rapor, WebKit ve Gecko sistemlerinin dahili işleyişini ortaya koymaktadır ve İsrailli web programcısı Talia Garciel tarafından yürütülen kapsamlı araştırmanın sonucudur. Bağlı tarayıcılar (bölüm bölümü) hakkında yayınlanan tüm bilgileri toplamak için uzun yıllar harcadı ve çıktı kodlarını analiz etmek için uzun saatler harcadı. Tali'nin kendisi ne yazdı:

Bilgisayarların %90’ında IE kurulu olsaydı “siyah ekranın” gizemi olan buna katlanmak zorunda kalırdınız ama artık bilgisayarların yarısından fazlası açık kaynak kodlu tarayıcıları tercih ediyorsa, zamanı geldi demektir. geri dönmek için, C++'daki milyonlarca satırlık program kodunun ortasında olmasını umdukları şey ...
Tali, soruşturmanın sonuçlarını web sitesinde yayınladı, ancak bunların daha geniş bir kitlenin saygısını hak ettiğine saygı duyuyoruz, bu nedenle bunları biraz kısa ve öz olarak buraya yerleştiriyoruz.

Tarayıcıların nasıl çalıştığının iç mekaniğine aşina olan bir web tarayıcısı, birini veya diğerini seçerken daha iyi kararlar verir. Bu hacimli belgeyi tamamlamak için oldukça önemli olduğundan okumanızı tavsiye ediyor ve zarar görmeyeceğinizi garanti ediyoruz. Paul Irish, Chrome Geliştirici İlişkileri

Girmek

Web tarayıcıları en gelişmiş programlar olabilir. Kimin asistanına kokularla nasıl baş edileceğini açıklayacağım. Adres çubuğuna google.ru yazdığınız andan Google sayfası karşınıza çıkana kadar ne beklediğinize daha yakından bakalım.

Hangi tarayıcılara sahip olduğumuza bakalım

Bugün beş büyük tarayıcı var: Internet Explorer, Firefox, Safari, Chrome ve Opera. Örneğin, kapalı kodlu tarayıcılar kullanılır: Firefox, Chrome ve Safari (kod genellikle gizlidir). StatCounter web sitesindeki tarayıcıların popülerliğine ilişkin istatistiklere göre, 2011 yılı başı itibarıyla cihazların toplam %60'ında Firefox, Safari ve Chrome tarayıcıları yüklü. Böylelikle açık kaynak kodlu tarayıcılar günümüzde daha da güçlü bir konumdadır.

Temel tarayıcı işlevleri

Tarayıcının temel amacı web kaynaklarını görüntülemektir. Bu amaçla sunucuya bir sorgu gönderilir ve sonuç tarayıcı penceresinde görüntülenir. Kaynaklar çoğunlukla HTML belgeleridir ancak bir PDF dosyası, bir resim veya başka bir konum da içerebilirler. Bir kaynağın uzantısı ek bir URI (birleşik kaynak tanımlayıcı) ile gösterilir.

Tarayıcının HTML dosyalarını işleme ve görüntüleme şekli, HTML ve CSS özelliklerine göre belirlenir. Kötü kokular Konsorsiyum tarafından gideriliyor W3Cİnternet standartlarını teşvik eden.
Birçok modern tarayıcı yalnızca birkaç özellik sunmuştur ve bunlar uzantılarla birlikte oluşturulmuştur. Web geliştiricileri için bu, ciddi sorunlar ve çılgınlık anlamına geliyordu. Günümüzde çoğu tarayıcı, tüm özellikleri az ya da çok karşılamaktadır.

Çeşitli tarayıcıların kullanıcı arayüzleri oldukça karmaşık olabilir. Tarayıcı arayüzünün ana unsurları aşağıda gösterilmiştir.

  • URI'yi girmek için adres çubuğu
  • Gezinme düğmeleri "Geri" ve "İleri"
  • Yer imleri
  • Sayfayı güncellemek ve güncellemek için düğmeler
  • Ana sayfaya gitmek için "Kubbe" butonu

Tarayıcı arayüzüne ilişkin standartları tanımlayacak hiçbir spesifikasyonun bulunmaması şaşırtıcı değildir. Günümüzün arayüzleri büyük bir evrimin sonucudur ve geliştiricilerin sıklıkla birbirlerini kopyaladıkları bilinmektedir. HTML5 spesifikasyonu, temel öğeler listelendiği sürece tarayıcı arayüzünün ne yapabileceğini belirtmez. Adres satırı, satır ve araç çubuğu önlerinde görünecektir. Elbette Firefox cazibe yöneticisi gibi belirli işlevler de var.

Üst seviyenin yapısı

Aşağıda tarayıcının () ana bileşenleri bulunmaktadır.

  1. Koristuvalnytskyi arayüzü– adres satırını, “Geri” ve “İleri” düğmelerini, yer imleri menüsünü vb. içerir. O zamana kadar, aktif sayfanın görüntülendiği pencere dışında tüm öğeler gösterilir.
  2. Tarayıcı Motoru– görüntüleme modülünün arayüzü ile etkileşime girer.
  3. Görüntüleme modülü- Güç verilen alanın ekranda görüntülendiğini belirtir. Örneğin, bir HTML belgesi yüklendiğinde, işleme modülü HTML ve CSS kodunu ayrıştırır ve sonucu ekranda görüntüler.
  4. Bileşenleri birleştir– HTTP istekleri gibi uç çağrılar oluşturmak için uygundur. Arayüzü, farklı bir uygulamanın bulunduğu platformun türüne bağlı değildir.
  5. Koristuvach arayüzünün Vikonavcha kısmı– Pencereler ve listeli alanlar gibi temel widget'ları görüntülemek için kullanılır. Bu evrensel arayüz aynı zamanda platform tipine de bağlıdır. Son kısım her zaman belirli bir işletim sisteminin arayüzüne yönelik yöntemleri tanıtır.
  6. JavaScript yorumlayıcısı– JavaScript kodunun sözdizimsel analizi ve analizi için kullanılır.
  7. Bir sürü haraç- İşlemleri kaydetmek için gereklidir. Tarayıcı, çerezler gibi çeşitli veri türlerini sabit sürücünüze kaydeder. Yeni HTML spesifikasyonunda (HTML5) özel bir "veritabanı" terimi vardır: tam teşekküllü (daha hafif de olsa) tarayıcı tabanlı bir veritabanı.
Malyunok. Tarayıcının temel bileşenleri.

Çoğu tarayıcıdan farklı olarak Chrome'un, her sekmede bir tane olmak üzere ve bitişik işlemlerde görüntüleme modülünün birkaç örneğini tuttuğunu lütfen unutmayın.

Görüntüleme modülü

Adından da tahmin edebileceğiniz gibi, ekran modülü, güç verilen alanın tarayıcı ekranında görüntülenmesinden sorumludur.

Görüntülerin yanı sıra HTML ve XML belgelerini de görüntülemeniz gerekir. Bağlanan özel modüller (tarayıcı uzantıları), PDF dosyaları gibi başka yerlerde görüntülenebilir. Ancak bu bölüm ana işlevleri kapsar: HTML belgelerinin ve ek CSS stilleri kullanılarak biçimlendirilmiş görüntülerin oluşturulması.

Görüntüleme modülleri

Bize söylemek gerekirse tarayıcıların (Firefox, Chrome ve Safari) iki ekran modülü vardır. Firefox, Gecko ile durgun; Mozilla sürümü ücretsiz ve Safari ve Chrome, WebKit ile galip geliyor.

WebKit, Linux platformu için geliştirilmiş ve Apple tarafından Mac OS ve Windows için uyarlamaları yapılmış, açık kaynak kodlu bir render modülüdür. Ayrıntılı bilgiye webkit.org adresinden ulaşılabilir.

Temel robot şeması

Görüntüleme modülü, alınan belgeyi 8 KB'lık parçalar adı verilen aracı protokolle değiştirir.

Görüntüleme modülünün daha fazla çalışmasının şeması aşağıda görülmektedir.

Malyunok. Robotik görüntüleme modülünün şeması.

İşleme modülü HTML belgesini ayrıştırır ve ağaçtaki düğümlerdeki etiketleri çevirir. Stillerle ilgili bilgiler hem harici CSS dosyalarından hem de stil öğelerinden gelir. HTML dosyalarında görüntülenecek bu bilgi ve talimatlar başka bir ağaç oluşturmak için kullanılır - .

Ortokütanöz bitkileri renk ve boyut gibi görsel özelliklerle birleştirmek önemlidir. Düz kesiciler, kokuların ekranda görünme sırasına göre konumlandırılmıştır.

Görüntü ağacı oluşturulduktan sonra elemanlar başlar, her yüzey düğümünde ekrandaki noktanın koordinatları verilir ve bunlar görünebilir. Daha sonra kullanıcının bilgisayar arayüzünün yardımıyla görüntüleme ağacının hangi düğümlerinin art arda çizildiğini gösterir.

Bunun ardışık bir süreç olduğunu anlamak önemlidir. Kullanıcıya kolaylık sağlamak için, görüntüleme modülü değişiklikleri ekranda mümkün olan en kısa sürede görüntüleyebilir, böylece görüntüleme ağacının ve düzeninin oluşturulması, HTML kodunun ayrıştırılması tamamlanmadan önce bile yazdırılabilir. Belgenin bazı bölümleri analiz edilir ve ekranda görüntülenir, bazıları ise ağ üzerinden iletilmez.

Robotik olarak kullanın

Malyunok. WebKit görüntüleme modülünün şematik diyagramı. Malyunok. Mozilla Gecko() görüntüleme modülünün şematik diyagramı.

Little Ones 3 ve 4'ten görülebileceği gibi, WebKit ve Gecko terminoloji açısından farklılık gösterir ancak çalışma şemaları pratik olarak aynıdır.

Gecko'da, görsel olarak biçimlendirilmiş öğelerden oluşan ağaca çerçeve ağacı adı verilir; buradaki kaplama öğesi, çerçevedir. WebKit, işleme nesnelerinden oluşan bir işleme ağacı oluşturur. Öğelerin WebKit'teki yerleşimine düzen veya düzen denir ve Gecko'da buna yeniden akış denir. Bir görünüm ağacı oluşturmak için DOM düğümleri ve görsel niteliklerin birleşimine WebKit'te ek adı verilir. Anlambilimle uğraşmayan Gecko'nun küçük gücü, HTML dosyası ile DOM ağacı arasında başka bir katmanın bulunmasından kaynaklanmaktadır. Buna içerik havuzu denir ve DOM öğeleri için kalıp görevi görür. Şimdi raporun skin aşamasından bahsedelim.

Sözdizimsel analiz: gizli sayfalar

Bazı ayrıştırma işlemleri, bu raporda ele alacağımız modülün önemli bir aşamasıdır. Kısa bir girişle bundan bahsedelim.

Bir belgenin sözdizimsel analizi sırasında okunabilir ve birebir bir yapıya dönüştürülmesine dikkat edilir. Sözdizimsel analizin sonucu genellikle belgenin yapısını oluşturan bir düğüm ağacıdır. Buna sözdizimsel analiz ağacı veya basitçe sözdizimsel ağaç denir.

Örneğin 2 + 3 - 1 ifadesinin ayrıştırılması sonucunda aşağıdaki ağaç elde edilebilir:

Malyunok. Matematiksel ifadeler için ahşap vuzol.

Dilbilgisi

Sözdizimsel analiz, belgenin formatıyla belirtilen yazılı kurallara dayanarak gerçekleştirilir. Her format için kelime ve sözdiziminden kaynaklanan dilbilgisi kuralları vardır. Koku t.z. . Doğal diller bağlamdan bağımsız dilbilgisi kurallarına uymaz, bu nedenle standart sözdizimsel analiz teknikleri onlar için uygundur.

Sözdizimsel ve sözcüksel analizci

Aynı zamanda sözcüksel analiz, sözdizimsel analizle birlikte durma noktasına gelir.

Sözcüksel analiz, belirteçler ve sözlükbirimler hakkındaki bilgileri içerir. Belirteçler, belge oluşturmaya yönelik hem diğer dillerin hem de yapıcı öğelerin sözlüğünü oluşturur. Doğal dilde sözlüklerde bulunabilen tüm kelimeler simgeseldir.

Sözdizimsel analizin anlamı dilin durağan sözdizimsel kurallarında yatmaktadır.

Doküman analizi iki bileşenden oluşur: sözcüksel analizci Aktif belirteçlerdeki karakterlerin giriş sırasını ayrıştıran ve ayrıştırıcı Bir belgenin yapısını belirli bir dilin sözdizimsel kurallarına göre analiz eden ve sözdizimsel bir ağaç oluşturan. Analizci, boşluklar ve satır aktarımları gibi bilgilendirici olmayan sembolleri dikkate almaz.

Malyunok. Çıktı belgesinden sözdizimi ağacına geçiş.

Sözdizimsel analiz yinelemeli bir süreçtir. Ayrıştırıcı daha sonra sözlükçüden yeni bir belirteç ister ve bunun sözdizimi kurallarıyla tutarlılığını kontrol eder. Bir tür oluşturmak mümkün olduğunda, sözdizimi ağacında belirteç için yeni bir düğüm oluşturulur ve analizör yeni belirteci kullanır.

Bir belirteç belirli bir kuralla eşleşir eşleşmez, ayrıştırıcı onu içine alır ve bu tür belirteçleri sorgular. Bu, tüm token depozitolarıyla eşleşen bir kural bulunana kadar devam edecek. Bu kuralı bilmiyorsanız analizci hata yapar. Bu, belgenin sözdizimsel düzeltmeler içerdiği ve hiçbir şekilde işlenemeyeceği anlamına gelir.

Tercüme

Sözdizimi ağacı her zaman kalan sonuç değildir. Ayrıştırma genellikle giriş belgesinin gerekli formata çevrilmesi sürecinde kullanılır. Popo bir derleme olabilir. Çıktı kodunu makine koduna çeviren derleyici, önce onu ayrıştırıp bir sözdizimi ağacı oluşturur, ardından bu ağacı temel alarak makine koduna sahip bir belge oluşturur.

Malyunok. Derleme aşamaları.

Sözdizimsel analize bir örnek

Küçük 5, matematiksel formülden ilham alan sözdizimsel bir ağacı göstermektedir. Temel matematik dilini anlamak ve sözdizimsel analiz sürecine bir göz atmak önemlidir.

Kelime dağarcığı: Dilimiz tam sayıları, artı ve eksi işaretlerini içerebilir.

Sözdizimi

  1. Bir dilin yapısal unsurları dil, işlenenler ve operatörlerdir.
  2. Dil herhangi bir sayıda virüsten intikam alabilir.
  3. Viraz, bir işlenen, bir operatör ve başka bir işlenenden oluşan bir dizidir.
  4. Operatör - ce belirteci artı veya eksi.
  5. İşlenen, chi viraz tamsayısının simgesidir.

2+3 – 1 sembollerinin giriş sırasına bakalım.
Kuralı doğrulayan ilk öğe 2'dir (kural 5 ile birlikte bu işlenendir). Bu türden başka bir öğe 2 + 3'tür (işlenene, operatöre ve başka bir işlenene eklenen sıra 3 numaralı kuralla belirlenir). Şu prensiplerle başlayalım: 2 + 3 – 1 dizisi şuna eşittir. 2+3 parçaları bir işlenendir ve işlenen, operatör ve karşılık gelen ifadeyi gösteren başka bir işlenenden oluşan diziyi çıkarırız. Satır 2 ++ kurallara uymuyor, dolayısıyla geçersiz sayılacak.

Kelime dağarcığının ve sözdiziminin resmi anlamı

Popodaki dil şu şekilde tercüme edilebilir:

TAM SAYI:0|* ARTI: + EKSİ: - Bildiğiniz gibi tam sayılar normal ifade kullanılarak hesaplanır.

Sözdizimi öncelikle BNF formatında açıklanmıştır. Dil genel olarak şu şekilde tanımlanabilir:

İfade:= terim işlemi terim işlemi:= ARTI | EKSİ terimi:= TAM SAYI | ifade

Daha önce belirtildiği gibi dil, dilbilgisi gibi standart ayrıştırıcılar kullanılarak ayrıştırılabilir. bağlamsız Bu tamamen BNF formatında ifade edilebilir. Bağlamdan bağımsız dilbilgisinin resmi tanımını Wikipedia makalesinde bulabilirsiniz.

Ayrıştırıcı türleri

İki tür ayrıştırıcı vardır: alt uç ve üst uç. İlk analiz dibe kadar yanacak, diğerleri ise dibe kadar yanacak. Aşağı akış analizörleri üst düzeyin yapısını ayrıştırır ve benzer sözdizimsel kuralları arar. Giriş analizörleri başlangıçta sembollerin giriş sırasını analiz eder ve alt seviyenin kurallarından başlayıp üst seviyenin kurallarıyla biten sözdizimsel kurallarını adım adım belirler.

Şimdi bu iki tip analizörün kıçımıza nasıl direndiğini görmek şaşırtıcı.

Benzer bir analizci üst seviyenin kurallarından yola çıktı ve 2 + 3'ün eşit olduğunu buldu. Daha sonra 2 + 3 – 1'in de bir virüs olduğunu öğreniyoruz (farklı ifadeler sürecinde her zaman üst seviyenin kuralı olarak kabul edilen diğer kurallarla benzerlikler vardır).

Çıktı çözümleyicisi sembol dizisini işledi, ifadenin parçasını ve dolayısıyla kalan diziyi değiştirebilecek uygun bir kural buldu. Daha sonra kısmi görünüme sahip virüsler analizör yığınına yerleştirilir.

Böyle bir analizörü çalıştırırken, sembollerin giriş sırası sağa doğru daraltılır (sıranın başlangıcına yerleştirilen ve analiz sırasında sağa doğru daraltılan bir imleç hayal edin) ve yavaş yavaş sözdizimsel kurallara indirgenir.

Ayrıştırıcıların otomatik oluşturulması

Ayrıştırıcılar oluşturmak için jeneratör adı verilen özel programlar vardır. Jeneratöre dil grameri (kelime bilgisi ve sözdizimsel kurallar) eklemek yeterlidir ve otomatik olarak bir analizör oluşturacaktır. Bir ayrıştırıcı oluşturmak için, çalışma prensiplerini derinlemesine anlamanız gerekir ve onu manuel olarak oluşturmak o kadar kolay değildir, bu nedenle jeneratörler çok kaba olabilir.

DOM

Sözdizimi ağacı DOM öğelerinden ve öznitelik düğümlerinden oluşur. DOM – Belge Nesne Modeli – bir HTML belgesini ve HTML öğesi arayüzünü JavaScript gibi harici nesnelere temsil etmeye hizmet eder.
Ağacın kökünde Document nesnesi bulunmaktadır.

DOM pratik olarak düzen ile aynıdır. İşaretlemenin ucuna bir göz atalım:

Selam Dünya

Bu düzenin DOM ağacı şuna benzer: Malyunok. En baştan düzen için DOM ağacı.

"DOM düğümlerini yerleştirecek bir ağaç" ifadesi, ağacın DOM arayüzlerinden birini uygulayan öğelerden oluştuğu anlamına gelir. Tarayıcıların dahili wiki'ler için ek özellikler sağlayan özel uygulamaları vardır.

Ayrıştırma algoritması

Önceki bölümlerde de söylendiği gibi, HTML kodunun ayrıştırılması standart aşağı akış veya giden ayrıştırıcılar kullanılarak yapılamaz.

Aşağıda belirtilen sebep yer almaktadır.

  1. Dilin “merhametli” bir karakteri vardır.
  2. Tarayıcılar, HTML kodunun belirli bölümlerini işlemek için yerleşik mekanizmalara sahiptir.
  3. Ayrıştırma döngüsü, yeniden giriş olasılığı ile karakterize edilir. Analiz işlemi sırasında çıktı belgesi değişmez, ancak, document.write'ın yerini alan HTML etiketleri betiğe girilirken yeni belirteçler eklenebilir, böylece çıktı kodu değiştirilebilir.

Bazı standart ayrıştırıcılar HTML için uygun değildir; tarayıcılar farklı ayrıştırıcılar oluşturur.

HTML5 spesifikasyonundaki rapor açıklamalarının sözdizimsel analizine yönelik bir algoritma. İki aşamadan oluşur: sözcüksel analiz ve ahşap analizi.

Sözcüksel analiz sonucunda sembollerin giriş sırası belirteçlere bölünür. HTML belirteçlerinin önünde, açma ve kapama etiketlerinin yanı sıra niteliklerin adları ve değerleri bulunur.

Sözcüksel analizci bir belirteci tanımlar, onu ağaç yapıcısına iletir ve sonraki simgeye geçerek daha fazla belirteç arar ve giriş dizisinin sonuna kadar bu şekilde devam eder.

Malyunok. HTML kodunu ayrıştırma aşamaları (Dzherelo: HTML5 spesifikasyonu).

Sözcüksel analiz algoritması

Algoritmanın sonucu bir HTML belirtecidir. İfadelerin algoritması, terminal dönüş sayısına sahip bir otomat gibidir. Dış görünüm bölgesi, giriş dizisinin bir veya daha fazla sembolünü üretir ve bu tür bir saha buna göre belirlenir. Bir ve aynı sembolün işlenmesi, üretim hattında farklı sonuçlara (farklı aşamalara) yol açabilmesi için sözlüksel analiz aşamasında ve ağaç şekillendirme aşamasında tutulmalıdır. Algoritma basittir, bu yüzden burada açıkça anlatabiliriz, o yüzden çalışmamızın prensibini daha iyi anlamamıza yardımcı olacak örneğe bir göz atalım.

Basit HTML kodunun Vikonaemo sözcüksel analizi:

Selam Dünya

Koçanı kampı - "haraç". Analizör sembolü görüntülediğinde< , состояние меняется на "etiketi gizle". (a-z) harfi göründüğü anda açılan etiketin jetonu oluşturulur ve şu şekilde değişir: "etiket adı". > sembolü görüntülenene kadar kaydedilecektir. Semboller yeni tokenin ismine birer birer eklenir. Vipad'imiz html belirtecini gösterir.

> sembolü görüntülendiğinde jeton hazırdır ve analizör geri döner "takdir". Etiket sadece bu şekilde çıkıyor. Böylece analizci zaten html ve body etiketlerini oluşturmuş ve "takdir". Merhaba dünya ifadesinde H harfinin ortaya çıkması, sembol için bir belirtecin oluşturulmasına yol açar. Analizör sembole ulaşana kadar aynı şey diğer harflerle tekrarlanır.< в теге . Merhaba dünya ifadesinin dış görünüm sembolü için bir simge oluşturulur.

Daha sonra analizör tekrar döner "etiketi gizle". Sembolün ortaya çıkarılması / kapanan etiketin tokeninin oluşturulmasına ve duruma geçişe yol açma "etiket adı". > sembolü görüntülenene kadar kaydedilecektir. Bu noktada yeni bir etiket için bir belirteç oluşturulur ve analizör geri döner. "takdir". Karakter dizisi Yukarıda açıklandığı gibi parçalanmış hale gelir.

Malyunok. Giriş sırasındaki sembollerin sözcüksel analizi.

Ağaç Algoritması

Ayrıştırıcı çalışırken bir Document nesnesi oluşturulur. Aşamada nesnenin kökünde yer aldığı DOM ağacı değiştirilerek yeni öğeler eklenir. Sözcük analizörü tarafından oluşturulan Kozhen vuzol, ağaç yapıcı tarafından tamamlanır. Dış görünüm belirtecinden önce, spesifikasyona göre kendi DOM öğesi oluşturulur. Öğeler yalnızca DOM ağacına değil, aynı zamanda yanlış iç içe geçmiş veya kapatılmamış etiketleri düzeltmeye yarayan kapalı öğeler yığınına da eklenir. Algoritma aynı zamanda ekleme modları olarak adlandırılan terminal sayıda aşamaya sahip bir makine olarak da ifade edilir.

İlerleyen kod parçası için ağaç oluşturma adımlarına bir göz atalım:

Selam Dünya

Ağacın kök aşamasında, sözcüksel analiz sonucunda belirlenen belirteçlerin sırasını alabiliriz. İlk kampın adı hafta sonu. Html jetonu kaldırıldığında durum şu şekilde değişir: "html'den önce" Bundan sonra jeton bu durumda tekrar işlenecektir. Sonuç olarak, kök Document nesnesine eklenen bir HTMLHtmlElement öğesi oluşturulur.

Sahne şu şekilde değişir: "başından önce". Analizör gövde belirtecini algılar. Kodumuzda head etiketi olmasa dahi HTMLHeadElement elemanı otomatik olarak oluşturulup ağaca eklenecektir.

Sahne şu şekilde değişir: "kafanın ortasında", Sonra "kafadan sonra". Gövde belirteci bir kez daha oluşturulur, ağaca eklenen HTMLBodyElement öğesi oluşturulur ve şu şekilde değiştirilir: "vücudun ortasında".

Şimdi sıra Merhaba Dünya token serisinde. Bunların ilk tezahürü, daha sonra diğer sembollerin eklendiği Metin düğümünün oluşturulması ve eklenmesiyle sonuçlanır.

Gövde belirteci kaldırıldığında durum şu şekilde değişir: "bedenden sonra". Analizör kapanan html etiketine ulaştığında şu şekilde değişecektir: "bedenden sonra". Dosya sonu belirteci kaldırıldığında analiz sona erer.

Malyunok. Popolu HTML kodu için Pobudov ağacı.

Ayrıştırma sonrasındaki eylemler

Bu aşamada tarayıcı belgeyi etkileşimli olarak tanır ve belgenin analizi tamamlandıktan sonra oturumdan çıkış yapılması gereken gömülü komut dosyalarını analiz etmeye başlar. Daha sonra belge formatı “hazır” olarak değişir ve yükle düğmesine tıklanır.

Bir grup izmaritlere bir göz atalım.
Sözcüksel dilbilgisi (kelime bilgisi), cilt belirteci için düzenli ifadelerle gösterilir:

Yorum \/\*[^*]*\*+([^/*][^*]*\*+)*\/ num +|*"."+ nonascii [\200-\377] nmstart [_a -z]|(nonascii)|(escape) nmchar [_a-z0-9-]|(nonascii)|(escape) ad (nmchar)+ ident (nmstart)(nmchar)*

Kimlik – sınıf adı olarak kullanılan bir tanımlayıcı. Ad – yeni siteye karma simgesiyle (#) gönderilen kimlik öğesi.

Sözdizimi kuralları BNF formatında açıklanmıştır.

Kural kümesi: seçici [ "," S* seçici ]* "(" S* bildirimi [ ";" S* bildirimi ]* ")" S* ; seçici: simple_selector [birleştirici seçici | S + [birleştirici? seçici]? ]? ; simple_selector: öğe_adı [HASH | sınıf | özellik | sözde ]* | [HASH | sınıf | özellik | sözde] +; sınıf: "." KİMLİK; öğe_adı: KİMLİK | "*"; özellik: "["S* KİMLİK S*[["=" | İÇERİR | DASHMATCH] S * [KİMLİK | TELLER* ] "]" ; sözde: ":" [ KİMLİK | FONKSİYON S * ")"]]; Aşağıda açıklanan yapıya sahip bir dizi kural (kural kümesi). div.error , a.error ( color:red; font-weight:bold; ) div.error ve a.error öğeleri seçicidir. Bu setin dekoratif kuralları figürün yayının yakınına yerleştirilmiştir. Resmi olarak bu yapı şu şekilde tanımlanır: kural kümesi: seçici [ "," S* seçici ]* "(" S* bildirimi [ ";" S* bildirimi ]* ")" S* ; Bu, bir dizi kuralın bir seçici veya boşluklar ve boşluklarla ayrılmış bir dizi seçici (S, boşluk anlamına gelir) gibi davrandığı anlamına gelir. Birini veya diğerini yerleştirmek için birkaç taneyle ayrılmış bir dizi kural. Kokular figürün pruvasına yerleştirilmiştir. Aşağıda "çarpıcı" ve "seçici" ifadesinin anlaşılması önemlidir.

WebKit CSS ayrıştırıcısı

WebKit, CSS ayrıştırıcılarını otomatik olarak oluşturmak için oluşturucuları kullanır. Daha önce beklendiği gibi Bison, işlemi sırasında sembollerin giriş sırasının sağa doğru çöktüğü giriş analizörlerinin oluşturulmasına kadar hizmet eder. Firefox, Mozilla tarafından geliştirilen tescilli bir düşük kaliteli analiz aracıdır. Her iki durumda da CSS dosyası, CSS kurallarını geçersiz kılan StyleSheet nesnelerine çevrilir. CSS kuralları nesnesi, seçici ve karışıklığın yanı sıra CSS dilbilgisine özgü diğer nesneleri de içerir.

Malyunok. CSS ayrıştırma.

Komut dosyası işleme sırası ve stil sayfası

Senaryo

Web belgeleri senkronize bir model kullanılarak işlenir. Analizcinin etiketi tespit etmesiyle birlikte komut dosyalarının analiz edilmesi ve sonuçlandırılması beklenmektedir.